在使用ASP.Net Core 2.0编写的应用程序中,如何在局部视图中写入全局ViewBag?部分获取它自己的本地ViewBag,所以我在那里写的任何内容都不会存储在全局ViewBag中 .
例如,假设“Home / Index”视图呈现部分“_TitleBar”,在此部分内部我们设置ViewBag.PageName =“MyPage” . 现在,稍后在同一个请求中,在“_Layout”中我想渲染ViewBag.PageName中存储的任何值 . 这在上面的场景中不起作用 . 那么如何从我的“_TitleBar”访问全局ViewBag,以便可以在其他地方获取此值?
目前,解决方法是将数据存储在TempData中,而不是全局数据 .
1 回答
Razor渲染实际页面然后渲染布局然后渲染部分视图,这就是部分视图不能具有部分等功能的原因 . 您可以使用
JavaScript
或JQuery
执行此操作,而无需依赖Razor . 您所要做的就是在局部视图中添加脚本以更新PageName
. 例如: