asp.net-mvc-3 - 子操作与其 “parents”操作共享相同的ViewBag吗?

标签 asp.net-mvc-3 viewbag child-actions

我对此感到困惑:
我有一个 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/

相关文章:

dll - 当前上下文中不存在名称 'ViewBag'

asp.net-mvc-3 - 通过 ViewBag 传递模型对象

javascript - 将ViewBag数据传递给requirejs或knockout

forms - 包含表单的 ASP.NET MVC3 Html.Action

asp.net-mvc - ASP.Net MVC 3 : Child Action and Redirect

asp.net-mvc - 操作链接按钮

asp.net-mvc-3 - 包含路径表达式必须引用在类型上定义的导航属性

asp.net-mvc - Asp.Net mvc 嵌套操作 HTTPPOST

asp.net - MVC3 中 FileResult 操作的缓存

mysql - 如果另一个表具有空值(序列不包含元素),则查询不显示