似乎是一个简单的问题,但我显然错过了一些东西。
我有一个我在partialView中创建的ViewBag。 通过浏览
呈现PartialView@Html.Action()
实际上,正在设置ViewBag变量的ActionMethod。 一旦设置,它们就可以在部分视图中使用,但是当我们回到父视图时,从ViewBag中调用Html.Action()的变量不再可用。
知道怎么回事?如何访问在Html.Action()操作方法中分配的ViewBag变量?
P.S。 我看到了以下问题: Can't access ViewBag in a partial view in ASP.NET MVC3
...从那里我收集到ViewBag变量在你简单渲染局部视图(@ Html.Partial())时传递,但是当你通过另一个Action Method渲染局部视图时它们不会。
请帮忙吗?
答案 0 :(得分:3)
根据此SO帖子Does a child action share the same ViewBag with its "parents" action?,无法从其父操作访问子操作的ViewData / ViewBag。这种情况很有意义,因为存储在ViewData / ViewBag中的信息不会在重定向中存在,并且在内部,子操作可能在完成执行后重定向回父操作。您希望将数据存储在可以在单个重定向中存活的位置,因此请尝试使用TempData,看看它是否有效。