具有共享布局的ASP.NET MVC区域

Kam*_*yar 39 asp.net-mvc-routing asp.net-mvc-areas asp.net-mvc-3

我在我的ASP.NET MVC 3应用程序中定义了一个区域(Admin),_ViewStart.cshtml在该区域中创建并添加Layout = "~/Views/Shared/_Layout.cshtml";到该区域以具有统一的站点布局.

我还将以下代码添加到_Layout.cshtml:

if (HttpContext.Current.User.IsInRole("Admin"))
{
    <li>@Html.ActionLink("Items List", "Index", "Items", new { area = "Admin" }, null)</li>
}
Run Code Online (Sandbox Code Playgroud)

Admin区域_Layout.cshtml以其布局正确显示.但是页面中的所有导航链接现在都指向Admin子文件夹.

例如,在我的布局中,我<li>@Html.ActionLink("About Us", "About", "Home")</li>指出了Mysite/Home/About.但点击管理链接后,"关于我们"链接指向/Admin/Home/About.

如果让_Layout.cshtml链接指向正确的地址,我该怎么办?
谢谢.

Dar*_*rov 48

如果要从根控制器提供服务,只需为它们指定一个空白区域:

<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li>
Run Code Online (Sandbox Code Playgroud)