ASP.NET obszary MVC ze współdzielonym układem

Zdefiniowałem obszar (Admin) w moim ASP.NET aplikacja MVC 3, utworzona _ViewStart.cshtml w tym obszarze i dodanaLayout = "~/Views/Shared/_Layout.cshtml"; do niej, aby mieć jednolity układ strony.

Dodałem również następujący kod do _Layout.cshtml:

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

Obszar Admin jest wyświetlany prawidłowo mając _Layout.cshtml jako swój układ. Ale wszystkie linki nawigacyjne na stronie wskazują teraz na podfolder Admin.

Na przykład w moim układzie mam <li>@Html.ActionLink("About Us", "About", "Home")</li>, co wskazuje na Mysite/Home/About. Ale po kliknięciu w link administratora, " O nas" link wskazuje na /Admin/Home/About.

Co powinienem zrobić, aby mieć _Layout.linki cshtml wskazujące na właściwy adres?
Dzięki.

Author: Kamyar, 2011-10-20

1 answers

Po prostu określ dla nich pusty obszar, jeśli mają być obsługiwane z kontrolerów root:

<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li>
 45
Author: Darin Dimitrov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-19 21:41:59