0

我正在研究 NHibernate、Castle Windsor 和 MVC3 项目。我需要通过查看当前登录用户的电子邮件地址。自定义成员资格提供程序位于 namespace.CustomProviders.WebWindsorMembershipProvider 中。如何将电子邮件地址传递到我的 Razor 视图?

我们的自定义会员提供程序将 usr.Email 定义为其中的一部分:

private MembershipUser GetMembershipUserFromUser(User usr)
    {
        MembershipUser u = new MembershipUser("WebWindsorMembershipProvider",
                                              usr.Username,
                                              usr.Id,
                                              usr.Email,
                                              usr.SecretQuestion,
                                              usr.SecretAnswer,
                                              usr.IsApproved,
                                              usr.IsLockedOut,
                                              (usr.CreationDate.HasValue) ? usr.CreationDate.Value : DateTime.Now,
                                              (usr.LastLoginDate.HasValue)
                                                  ? usr.LastLoginDate.Value
                                                  : Utils.MinDate(),
                                              (usr.LastActivityDate.HasValue)
                                                  ? usr.LastActivityDate.Value
                                                  : Utils.MinDate(),
                                              (usr.LastPasswordChangedDate.HasValue)
                                                  ? usr.LastPasswordChangedDate.Value
                                                  : Utils.MinDate(),
                                              (usr.LastLockedOutDate.HasValue)
                                                  ? usr.LastLockedOutDate.Value
                                                  : Utils.MinDate()); 

        return u;
    }

如何从自定义提供程序传递 usr.Email 值以嵌入到我的 AccountInfo 视图中的 H2 标记中?

4

1 回答 1

2

我不知道您是如何实现会员系统的,但假设它使用标准会员界面,那么您只需执行以下操作:

return View(Membership.GetUser().Email)

如果您使用的是视图模型,那么您只需执行相同的操作,但将其添加到视图模型并将视图模型传递给视图。

不知道为什么你觉得这很困难。

于 2012-10-14T23:49:20.077 回答