首页 文章

从ASP.Net Core中的局部视图写入全局ViewBag

提问于
浏览
0

在使用ASP.Net Core 2.0编写的应用程序中,如何在局部视图中写入全局ViewBag?部分获取它自己的本地ViewBag,所以我在那里写的任何内容都不会存储在全局ViewBag中 .

例如,假设“Home / Index”视图呈现部分“_TitleBar”,在此部分内部我们设置ViewBag.PageName =“MyPage” . 现在,稍后在同一个请求中,在“_Layout”中我想渲染ViewBag.PageName中存储的任何值 . 这在上面的场景中不起作用 . 那么如何从我的“_TitleBar”访问全局ViewBag,以便可以在其他地方获取此值?

目前,解决方法是将数据存储在TempData中,而不是全局数据 .

1 回答

  • 0

    Razor渲染实际页面然后渲染布局然后渲染部分视图,这就是部分视图不能具有部分等功能的原因 . 您可以使用 JavaScriptJQuery 执行此操作,而无需依赖Razor . 您所要做的就是在局部视图中添加脚本以更新 PageName . 例如:

    _Layout.cshtml
    ------------------
    <title>Site Name | Page Name </title>
    
    _partial.cshtml
    <script type="text/javascript">
        $(document).ready(function () {
             document.title = "new title";
        })
    </script>
    

相关问题