我正在使用MVC3。成功登录后,我需要在母版页中显示用户的全名,即欢迎杰克。 全名在另一个名为“UserProfile”的表中。 在传统的asp.net网络表单中,我可以轻松地做到这一点。但我不知道如何在MVC中做到这一点.. !! 我有一个部分视图名称'LogOnUserControl.ascx'。在这个局部视图中,我有以下代码,显示登录用户名。
Welcome <strong><%: Page.User.Identity.Name %></strong>!
如果右键单击此按钮并单击“转到控制器”,则不会进入任何位置。 任何人都可以指导我如何获得用户的原始名称??
答案 0 :(得分:2)
对于这种情况,您可以使用子操作。假设您已经设置了身份验证,则可以在子操作中查找UserProfile表,并使用表示用户数据的视图模型呈现部分视图。
因此,在您的母版页中,您将拥有:
<%= Html.RenderAction("UserLogonInfo", "Account")%>
然后,您可以拥有一个带有子操作的帐户控制器,该操作将获取用户数据并进行呈现:
[ChildActionOnly]
public PartialViewResult UserLogonInfo()
{
IPrincipal principal = HttpContext.User;
LogonInfoViewModel model = UserDataRepository.GetUserLogonInfo(principal);
return PartialView(model);
}