如何动态呈现_layout.cshtml中不同区域的局部视图?

时间:2018-10-02 15:45:19

标签: asp.net-mvc

我在主区域中有一个布局页面(_layout.cshtml),这三个区域分别称为员工区域,管理区域和主区域。每个区域分别具有自己的局部视图(侧菜单),分别称为_employeeSideMenu.cshtml,_adminSideMenu.cshtml ,_mainSidemenu.cshtml。 如何根据区域要求在_layout.cshtml页面中渲染侧面菜单。

我接受这样的内容:

@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");
}

2 个答案:

答案 0 :(得分:0)

您可以使用此ViewContext.RouteData.DataTokens["area"]获取当前的区域名称,然后将结果应用到您的逻辑中。

答案 1 :(得分:0)

我已经找到了解决这个问题的完美方法。在这里-

@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");
}