如何将用户的电子邮件地址从NHibernate和Windsor传递到MVC3视图?

时间:2012-10-14 23:23:28

标签: asp.net-mvc nhibernate castle-windsor

我正在研究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标记?

1 个答案:

答案 0 :(得分:2)

我对您如何实现您的会员系统一无所知,但假设它使用标准的会员界面,那么您只需这样做:

return View(Membership.GetUser().Email)

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

不确定为什么你觉得这很难。