web-dev-qa-db-fra.com

Zones MVC ASP.NET avec disposition partagée

J'ai défini une zone (Admin) dans mon application ASP.NET MVC 3, créé _ViewStart.cshtml Dans cette zone et y ajouté Layout = "~/Views/Shared/_Layout.cshtml"; Pour avoir une disposition de site unifiée.

J'ai également ajouté le code suivant à _Layout.cshtml:

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

La zone Admin s'affiche correctement avec _Layout.cshtml Comme disposition. Mais tous les liens de navigation de la page pointent désormais vers le sous-dossier Admin.

Par exemple, dans ma mise en page, j'ai <li>@Html.ActionLink("About Us", "About", "Home")</li>, qui pointe vers Mysite/Home/About. Mais après avoir cliqué sur le lien administrateur, le lien "À propos de nous" pointe vers /Admin/Home/About.

Que dois-je faire pour que les liens _Layout.cshtml pointent vers la bonne adresse?
Merci.

39
Kamyar

Spécifiez simplement une zone vide pour eux s'ils doivent être servis à partir des contrôleurs racine:

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