如何在MVC中添加当前用户详细信息的视图?

时间:2009-11-19 16:05:24

标签: asp.net-mvc asp.net-mvc-2

MVC 2,所以我不知道它是否有所不同。我正在尝试添加页面,以便在用户登录时,他们点击页面右上角的用户名,然后将他们带到显示其详细信息的页面(电子邮件,更改密码链接,个人资料信息等) ..)。我正在尝试使用aspnet MembershipService来执行此操作。

2 个答案:

答案 0 :(得分:0)

它与1.0中的相同,如下所示:How to get the current user in ASP.NET MVC

答案 1 :(得分:0)

在您的控制器操作中执行以下操作:

string id = HttpContext.User.Identity.Name.ToString();

ProfileBase profileBase;
if (!String.IsNullOrEmpty(id))
       profileBase = ProfileBase.Create(id);
else
       profileBase = HttpContext.Profile as ProfileBase;

使用profileBase对象,您可以获取所有配置文件属性:

profileBase.GetPropertyValue("PersonalInformation.FirstName")

使用这些属性,您可以填充自定义视图模型对象,例如:

public class ProfileInformation
{
   public string FirstName { get; set; }
}

并将其传递给视图:

return View(profileInformation);

在视图声明中,您将收到如下所示的ProfileInformation对象:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
    Inherits="System.Web.Mvc.ViewPage<AzureBright.Models.ProfileInformation>" %>

然后生成如下的编辑器字段:

<%= Html.EditorFor(profile => profile)%>

希望这是你想知道的