无法在ASP.NET MVC3的部分视图中访问ViewBag怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)

我有一个控制器调用视图。在视图中有一个PartialView被称为be @Html.Partial("ViewName", model).这工作正常。

但是controller我希望在视图中放入什么东西,我很难置入视图模型中。主视图访问没有问题ViewBag,但在PartialView它不返回任何东西。

是否有可能ViewBag在这种情况下使用或者应该将这些数据“转入”我传递给视图的模型(以及传递给PartialView模型的模型以及传递给第一个PartialView嵌套模型的模型PartialView)?

提问于
用户回答回答于

这应该没有任何问题。在我的HomeController索引操作中,我向ViewBag添加一条消息:

ViewBag.Message = "Welcome to ASP.NET MVC!";

在索引视图中,我添加了部分视图:

@Html.Partial("ViewName")

在部分视图中,我呈现消息:

@ViewBag.Message

你还干了什么?可能是打字错误?

用户回答回答于

如果正在使用的过载Html.Partial(),其中viewData是输入参数中的一个,例如:

@Html.Partial("PartialViewName", Model, new ViewDataDictionary(ViewBag))

那么你的局部视图将不会看到原始ViewBag中的数据。

删除new ViewDataDictionary(ViewBag),所以你应该写

@Html.Partial("PartialViewName", Model)

扫码关注云+社区