加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 子动作是否与其“父母”动作共享相同的ViewBag

发布时间:2020-12-16 00:22:07 所属栏目:asp.Net 来源:网络整理
导读:我对此感到困惑: 我有一个动作,比如Parent,在相应的视图文件中,我调用了一个子动作,比如Child,父动作和子动作都在同一个控制器中。 我需要Child动作和Parent动作来共享ViewBag.Now中的一些数据,我应该怎么做?这是我的问题: 当我在父视图文件中调用C
我对此感到困惑:
我有一个动作,比如Parent,在相应的视图文件中,我调用了一个子动作,比如Child,父动作和子动作都在同一个控制器中。

我需要Child动作和Parent动作来共享ViewBag.Now中的一些数据,我应该怎么做?这是我的问题:

当我在父视图文件中调用Child动作时,我将viewbag传递给它,如下所示:
@ Html.Action(ViewBag)。
在我的孩子行动中,我这样做:

public PartialViewResult Child(Object ViewBag)
{
  //using the data in ViewBag
}

这是正确的方法吗? viewbag对象是通过引用传递的还是与原始viewbag不同的对象(需要更多内存)?

或者,如果Child操作默认情况下正在与其调用父Action共享viewbag?

从Darin Dimitrov的回答中,我知道我不能做这样的事情:@ Html.Action(ViewBag)

但我真的需要通过子动作多参数,我该怎么办?

解决方法

子操作遵循与父操作不同的控制器/模型/视图生命周期。因此,他们不共享ViewData / ViewBag。如果要将参数传递给父级的子操作,可以执行以下操作:
@Html.Action("Child",new { message = ViewBag.Message })

在儿童行动中:

public ActionResult Child(string message)
{
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读