c# - 使用 Html.Action() 时,PartialView ViewBag 数据在父 View 中不可用

标签 c# asp.net-mvc asp.net-mvc-3 html-helper

似乎是一个简单的问题,但我显然错过了一些东西。

我有一个在partialView 中创建的ViewBag。 PartialView 正在通过

进行渲染
@Html.Action()

事实上,这就是在其中设置 ViewBag 变量的 ActionMethod。 设置后,它们在部分 View 中可用,但是当我们返回到从 ViewBag 调用 Html.Action() 的父级时,变量不再可用。

知道怎么来的吗?如何访问在 Html.Action() 操作方法内分配的 ViewBag 变量?

附注 我看到了以下问题: Can't access ViewBag in a partial view in ASP.NET MVC3

...据我所知,当您简单地渲染部分 View ( @Html.Partial() )时,ViewBag 变量会被传递,但当您通过另一个操作方法渲染部分 View 时,它们不会被传递。

请帮忙?

最佳答案

根据这篇文章Does a child action share the same ViewBag with its "parents" action? ,子操作的 ViewData/ViewBag 无法从其父操作访问。这是有道理的,因为存储在 ViewData/ViewBag 中的信息无法在重定向后继续存在,并且子操作在完成执行后可能会在内部重定向回父操作。您希望将数据存储在可以在单次重定向后继续存在的位置,因此请尝试使用 TempData相反,看看它是否有效。

关于c# - 使用 Html.Action() 时,PartialView ViewBag 数据在父 View 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182949/

相关文章:

javascript - VS2008 JavaScript 调试器 IE8 "there is no source code available for the current location"

c# - asp.net MVC 如何从 POST 接收数据

jquery - 如何查看有错误的元素的 jQuery 验证列表

c# 类对象 - 存储/检索多值列表的最佳方法是什么?

c# - 枚举可能有范围吗?

c# - Asp.net 核心本地化 有没有办法允许所有文化?

c# - 在 MSI 安装程序期间注册 DLL 和 COM 组件的问题

ASP.NET 运行时错误 : "path" is not a valid IIS application. VS2012/IIS7.5

asp.net-mvc - ASP.NET MVC 3 简单可靠的移动设备检测 : use 51degrees. mobi 还是原生?

c# - MVC 3,用于用户注册过程的 View 模型。密码验证无法正常工作