2011-03-05 28 views
8

¿Hay alguna manera de compartir una vista de maquinilla de afeitar parcial entre áreas?ASP.net MVC - Compartir parciales entre áreas

Por ejemplo, un inicio de sesión parcial, se encuentra si uso @Html.Partial("_LoginPartial") pero las URLs Html.ActionLink generan son locales al área de llamadas (aunque el parcial en sí no es parte del área).

_LoginPartial.cshtml is in /Views/Shared/_LoginPartial.cshtml 
Calling view is inside /Areas/Somearea/Views 

Links generated are like: http://example.com/Somearea/Account/Login 
But should always be: http://example.com/Account/Login 

Vista parcial de origen:

@if(Request.IsAuthenticated) { 
    <text>Welcome <b>@Context.User.Identity.Name</b>! 
    [ @Html.ActionLink(@Messages.Logout, "Logout", "Account") ]</text> 
} 
else { 
    @:[ @Html.ActionLink(@Messages.Login, "Login", "Account") ] 
} 

Gracias

Respuesta

9

Puede especificar el área (o la falta de uno) en el ActionLink() método:

Html.ActionLink(@Messages.Logout, "Logout", "Account", new { Area = "" }, new{}) 

Esto asegurará que la el enlace no se resuelve en una URL dentro del área actual.

Cuestiones relacionadas