Подтвердить что ты не робот

Области ASP.NET MVC с общим расположением

Я определил область (Admin) в моем приложении ASP.NET MVC 3, создал _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>
}

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

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

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

4b9b3361

Ответ 1

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

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