似乎是一个简单的问题,但我显然错过了一些东西。
我有一个在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/