使用 Html.Action() 时,PartialView ViewBag 数据在父视图中不可用
本文关键字:视图 数据 ViewBag Action Html PartialView 使用 | 更新日期: 2023-09-27 18:31:15
似乎是一个简单的问题,但我显然错过了一些东西。
我有一个在部分视图中创建的ViewBag。部分视图正在通过
@Html.Action()
事实上,这就是在其中设置ViewBag变量的ActionMethod。一旦设置,它们在部分视图中可用,但是当我们回到从 ViewBag 调用 Html.Action() 的父级时,变量不再可用。
知道怎么来了吗?如何访问在 Html.Action() 操作方法中分配的 ViewBag 变量?
附言我看到了以下问题:无法访问 MVC3 ASP.NET 部分视图中的 ViewBag
。从中我了解到,当您简单地渲染部分视图(@Html.Partial())时,ViewBag变量会传递,但是当您通过另一个操作方法渲染部分视图时,它们不会传递。
请帮忙 ?
根据这篇SO帖子,子操作是否与其"父"操作共享相同的ViewBag?,子操作的ViewData/ViewBag无法从其父操作访问。 这是有道理的,因为存储在 ViewData/ViewBag 中的信息无法在重定向后存活,并且在内部子操作可能在完成执行后重定向回父操作。 您希望将数据存储在可以在单个重定向中幸存下来的位置,因此请尝试改用 TempData,看看它是否有效。