asp.net mvc3 работает с мастер-страницами - PullRequest
0 голосов
/ 26 сентября 2011

На моем веб-сайте, когда пользователь входит в систему, я хочу показать имя пользователя, а также показать кнопку выхода из системы.

В ASP.NET 4.0 мы могли использовать код, стоящий за файлом главной страницы, для написания кода для такой общей вещи, как эта. Но я не знаю, как этого добиться в MVC3. Я не хотел бы передавать имя пользователя на каждом просмотре страницы и добавлять ссылку действия выхода из системы на каждом контроллере.

Кто-нибудь может предложить лучший способ?

Спасибо

Saarthak

1 Ответ

1 голос
/ 26 сентября 2011

Вы можете использовать частичное. Шаблон по умолчанию делает именно это. Создайте новое приложение ASP.NET MVC 3, используя встроенный мастер, и посмотрите на частичку _LogOnPartial.cshtml, которая была сгенерирована для вас и которая вызывается в _Layout.cshtml с использованием @Html.Partial("_LogOnPartial").

Этот фрагмент выглядит следующим образом:

@if(Request.IsAuthenticated) {
    <text>Welcome <strong>@User.Identity.Name</strong>!
    [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else {
    @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}

Он проверяет, прошел ли пользователь аутентификацию и приветствует ли он его, предоставляет ли ссылку LogOff, а если нет, просто предоставляет ссылку LogOn.

То же самое, если вы используете движок представления WebForms:

LogOnUserControl.ascx, который вызывается из Site.Master с использованием <% Html.RenderPartial("LogOnUserControl"); %>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...