【问题标题】:How to add a view for current user details in MVC?如何在 MVC 中添加当前用户详细信息的视图?
【发布时间】:2009-11-20 21:44:30
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    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)%>
    

    希望这是你想知道的

    【讨论】:

      【解决方案2】:

      这将与 1.0 中的相同,并在此处询问:How to get the current user in ASP.NET MVC

      【讨论】:

      • 远非同一个问题。您链接到的是“如何获取当前用户”。我想生成一个显示用户详细信息的控制器操作和视图。
      • 你必须提供更多关于你想要做什么的细节,因为一旦你有了对象,剩下的就是你的应用程序。如果您有一些无法运行的代码或其他问题,那可能会有所帮助。
      • 同意 Yetapb。你在为哪一点苦苦挣扎?创建视图?控制器?模型?使用会员提供程序?
      猜你喜欢
      • 2022-12-23
      • 2013-09-04
      • 1970-01-01
      • 2021-06-11
      • 2023-03-27
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多