2011-10-19 2 views
36

Я определил область (Admin) в моем приложении ASP.NET MVC 3, создал _ViewStart.cshtml в этой области и добавил Layout = "~/Views/Shared/_Layout.cshtml"; к нему, чтобы иметь унифицированный макет сайта.ASP.NET MVC Области с общим расположением

Я также добавил следующий код _Layout.cshtml: отображается

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

Admin область хорошенько _Layout.cshtml в качестве его расположения. Но все навигационные ссылки на странице теперь указывают на подпапку Admin.

Например, в моем макете есть <li>@Html.ActionLink("About Us", "About", "Home")</li>, что указывает на Mysite/Home/About. Но после нажатия на ссылку администратора ссылка «О нас» указывает на /Admin/Home/About.

Что мне делать, чтобы иметь _Layout.cshtml ссылки, указывающие на правильный адрес?
Спасибо.

ответ

45

Просто укажите пустую область для них, если они должны быть поданы от корневых контроллеров:

<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li> 
Смежные вопросы