如何在 _layout.cshtml 中为不同区域动态渲染局部视图?
Posted
技术标签:
【中文标题】如何在 _layout.cshtml 中为不同区域动态渲染局部视图?【英文标题】:How to dynamically render partial view inside _layout.cshtml for different areas? 【发布时间】:2019-03-07 18:57:42 【问题描述】:我在主区域有一个布局页面(_layout.cshtml),三个区域称为员工区域,管理区域和主区域。每个区域都有自己的局部视图(侧菜单),称为_employeeSideMenu.cshtml,_adminSideMenu.cshtml ,_mainSidemenu.cshtml。 如何根据区域请求在_layout.cshtml页面中呈现sidemenu。
我接受这样的事情:
@if(Request from employee area)
Html.Partial("_employeeSideMenu");
else if(Request from admin area)
Html.Partial("_adminSideMenu");
else (Request from main area)
Html.Partial("_mainSidemenu");
【问题讨论】:
【参考方案1】:您可以使用此ViewContext.RouteData.DataTokens["area"]
获取当前区域名称,然后将结果应用到您的逻辑中。
【讨论】:
【参考方案2】:我找到了解决这个问题的完美方法。这是-
@if(ViewContext.RouteData.DataTokens["area"] = "EmployeeArea")
Html.Partial("_employeeSideMenu");
else if(ViewContext.RouteData.DataTokens["area"] = "AdminArea")
Html.Partial("_adminSideMenu");
else (ViewContext.RouteData.DataTokens["area"] = "MainArea")
Html.Partial("_mainSidemenu");
【讨论】:
以上是关于如何在 _layout.cshtml 中为不同区域动态渲染局部视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 _Layout.cshtml 页面隐藏页面上的特定元素
如何将配置设置添加到 _Layout.cshtml 共享 Razor 页面
asp.net _Layout.cshtml 仅在模型类型为 ______ 时加载脚本
如何在 ASP.NET Core Razor Pages 项目的 _layout.cshtml 文件中使用 Razor Page Using Entity Framework 作为部分视图?