отображать полное имя пользователя вместо имени пользователя - PullRequest
3 голосов
/ 10 сентября 2011

Я использую MVC3. Мне нужно отобразить полное имя пользователя на главной странице после успешного входа в систему, т. Е. Добро пожаловать, Джек. Полное имя находится в другой таблице под названием «UserProfile». В традиционных веб-формах asp.net я мог бы сделать это легко. Но я понятия не имею, как это сделать в MVC .. !! У меня есть частичное имя представления 'LogOnUserControl.ascx'. В этом частичном представлении у меня есть следующий код, который показывает имя пользователя для входа в систему.

Welcome <strong><%: Page.User.Identity.Name %></strong>!

Если щелкнуть по нему правой кнопкой мыши и нажать «Перейти к контроллеру», он никуда не денется. Может кто-нибудь, пожалуйста, сообщите мне о том, как получить исходное имя пользователя ??

1 Ответ

2 голосов
/ 10 сентября 2011

Для этого случая вы можете использовать дочернее действие. Предполагая, что вы уже настроили свою аутентификацию, вы можете при поиске дочернего действия в таблице UserProfile и визуализировать частичное представление с моделью представления, представляющей пользовательские данные.

Итак, на вашей мастер-странице вы будете иметь:

<%= Html.RenderAction("UserLogonInfo", "Account")%>

Тогда у вас может быть контроллер учетной записи с дочерним действием, которое будет получать пользовательские данные и отображать их:

    [ChildActionOnly]
    public PartialViewResult UserLogonInfo()
    {
        IPrincipal principal = HttpContext.User;
        LogonInfoViewModel model = UserDataRepository.GetUserLogonInfo(principal);
        return PartialView(model);
    }
...