0

我现在已经进入 MVC 几个星期了,而且每天都会出现一些新的东西,这让我觉得很奇怪。所以,我试图找到我面临的问题的答案。尽管如此,对于当前的问题,我似乎在stackoverflow上或谷歌上的任何地方都找不到下降的答案......

我在使用 HTML.RenderAction 方法将参数传递给我的控制器时遇到问题。由于某种原因,参数在 RouteData 中正确结束,但“函数参数”为空。我认为这与我的路由图有关,所以我想在这里发布它们以获取更多信息。

我的路线图(除其他外,但我知道我当前的操作正在使用此根):

routes.MapRoute("Default","{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = "" },
            null,
            new[] { "Web.Controllers" }
        );

我的控制器动作:

public ActionResult GeneralManagementDetail(int? id)
{
        //dostuff
}

RenderAction 调用:

<% Html.RenderAction("GeneralManagementDetail", "Person", new { id = 4 }); %>

当然,“4”当前是一个硬编码值,它将成为我在那里的包含 foreach 循环中的对象的 id。

现在,这导致控制器中的“int id”为NULL,但是当“QuickWatching”RouteData 时,它肯定有一个键值对“id,4”...

4

2 回答 2

1

好的,只是为了澄清一下,问题显然是控制器被缓存在提供给我们的框架中(不同的开发团队执行框架)。因此,当我们深入研究框架并确保容器不再被缓存时,参数的传递就像一个魅力。非常感谢您的回答,但问题似乎出在我们自己的公司内部!

于 2010-02-04T11:47:05.663 回答
0

也许“id =(int?)null”会成功吗?我的意思是,如果类型搞砸了怎么办。

于 2010-02-03T16:21:30.180 回答