使用ViewDataDictionary参数调用时,Mvc Html.Partial()无效

时间:2014-01-11 20:40:30

标签: c# asp.net-mvc asp.net-mvc-4

我有一个名为C的控制器,它有一个名为A的操作。我还有一个名为_NavigationViews/Shared/_Navigation.cshtml)的共享视图。在文件的中间(Views/C/A.cshtml),我有一个这样的代码:

@Html.Partial("_Navigation")

一切正常,导航已加载。但是,如果我试着打电话

@Html.Partial("_Navigation", new ViewDataDictionary() { { "foo", "bar"}})

突然导航部分未加载到页面中。我也试过

@Html.Partial("~Views/Shared/_Navigation", new ViewDataDictionary() { { "foo", "bar"}})
@Html.Partial("../Shared/_Navigation", new ViewDataDictionary() { { "foo", "bar"}})

@Html.Partial("~Views/Shared/_Navigation", null, new ViewDataDictionary() { { "foo", "bar"}})
@Html.Partial("../Shared/_Navigation", null, new ViewDataDictionary() { { "foo", "bar"}})

这些都没有奏效。我把断点放在_Navigation中,它甚至被击中了!它还继续通过所有视图而不会崩溃。 Chrome中的控制台,输出或页面中的任何位置都没有显示错误。

1 个答案:

答案 0 :(得分:1)

显然,我覆盖了整个ViewDataDictionary,应该像这样调用:

@{ ViewData.Add("foo", "bar"); }

@Html.Partial("_Navigation", ViewData)