ASP.net MVC - Обмен частями между областями - PullRequest
8 голосов
/ 05 марта 2011

есть ли какой-нибудь способ разделить частичное отображение бритвы между областями?

Например, частичное имя входа, оно обнаруживается, если я использую @Html.Partial("_LoginPartial"), но генерируемые URL-адреса Html.ActionLink являются локальными для вызывающей области(хотя само частичное не является частью области).

_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

Источник частичного представления:

@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") ]
}

Спасибо

1 Ответ

9 голосов
/ 05 марта 2011

Вы можете указать область (или ее отсутствие) в методе ActionLink():

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

Это гарантирует, что ссылка не преобразуется в URL в текущей области.

...