我对此感到困惑:
我有一个 Action ,例如Parent,在相应的 View 文件中,我称为child Action ,例如Child,Parent和Child Action 都在同一 Controller 中。
我需要Child操作和Parent操作来在ViewBag中共享一些数据。现在,我该怎么办?这是我的问题:
当我在父级的 View 文件中调用Child操作时,我将viewbag传递给它,如下所示:
@ Html.Action(ViewBag)。
在我的 child 行为中,我这样做:
public PartialViewResult Child(Object ViewBag)
{
//using the data in ViewBag
}
这是正确的方法吗? Viewbag对象是通过引用传递的还是与原始Viewbag不同的对象(需要更多内存)?
还是默认情况下,子操作是否与其调用父操作共享 View 包?
从达林·迪米特洛夫(Darin Dimitrov)的回答中,我知道我不能做这样的事情:@ Html.Action(ViewBag)
但是我真的需要传递 child Action 的多个参数,我该怎么办?
最佳答案
子级操作与父级操作遵循不同的 Controller /模型/ View 生命周期。结果,它们不共享ViewData / ViewBag。如果要将参数从父级传递给子级操作,可以执行以下操作:
@Html.Action("Child", new { message = ViewBag.Message })
在子 Action 中:
public ActionResult Child(string message)
{
...
}
关于asp.net-mvc-3 - 子操作与其 “parents”操作共享相同的ViewBag吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737124/