显示用户全名而不是用户名

时间:2011-09-10 17:41:42

标签: asp.net-mvc model-view-controller asp.net-mvc-3 asp.net-membership

我正在使用MVC3。成功登录后,我需要在母版页中显示用户的全名,即欢迎杰克。 全名在另一个名为“UserProfile”的表中。 在传统的asp.net网络表单中,我可以轻松地做到这一点。但我不知道如何在MVC中做到这一点.. !! 我有一个部分视图名称'LogOnUserControl.ascx'。在这个局部视图中,我有以下代码,显示登录用户名。

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

如果右键单击此按钮并单击“转到控制器”,则不会进入任何位置。 任何人都可以指导我如何获得用户的原始名称??

1 个答案:

答案 0 :(得分:2)

对于这种情况,您可以使用子操作。假设您已经设置了身份验证,则可以在子操作中查找UserProfile表,并使用表示用户数据的视图模型呈现部分视图。

因此,在您的母版页中,您将拥有:

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

然后,您可以拥有一个带有子操作的帐户控制器,该操作将获取用户数据并进行呈现:

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