如何在 _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 中为不同区域动态渲染局部视图?的主要内容,如果未能解决你的问题,请参考以下文章