Asp.net mvc 将数据从子操作传递到razor中的父操作

Asp.net mvc 将数据从子操作传递到razor中的父操作,asp.net-mvc,asp.net-mvc-3,lifecycle,viewbag,Asp.net Mvc,Asp.net Mvc 3,Lifecycle,Viewbag,在razor视图中时,是否可以从子操作向视图传递数据?即: @{ ViewBag.passedData = ""; } @Html.Action("ChildView","ChildController") // Inside the child action (controller or view) magic happens @ViewBag.passedData // it's not empty! 注意,在子视图中,我可以使用ControllerContext.ParentA

在razor视图中时,是否可以从子操作向视图传递数据?即:

@{
   ViewBag.passedData = "";
}

@Html.Action("ChildView","ChildController") // Inside the child action (controller or view) magic happens

@ViewBag.passedData // it's not empty!
注意,在子视图中,我可以使用
ControllerContext.ParentActionViewContext.ViewBag.passedData来读取父视图数据,但是当我写入它时,什么也没有发生

事实证明,要访问.passedData属性,应在父视图中使用:

  @ViewContext.ViewBag.passedData   // Has the passed data!
  @ViewBag.passedData // null

这会让事情顺利进行,但如果有更合适或更正式的方法,请回复。

什么都不会发生?放置断点,逐步遍历代码,当它到达该点时会做什么?您能提供的信息越多越好实际上我将使用一个解决方案进行更新,但仍将等待一个更正式/合适的解决方案(如果有)为什么您使用ViewBag/ViewData而不是强类型视图模型?你想达到什么目标?为什么子操作应该修改父操作使用的某些数据?我确信有更好的方法来实现你想要实现的目标。你一直说你想要一个“适当或正式的方式”。使用ViewBag不是正确的方式。正确的方法是强类型视图,并将数据与模型一起传递。@标记链接描述了另一种方法。Sean,我正在尝试创建一个子视图,将所有依赖项(在css/js文件中)传递回主视图,以便主视图可以排列/编译它们。我并不反对使用主模型,尽管它存在于ViewData.model中,因此它仍然需要访问ViewData对象