仍在尝试使用 MVC4 掌握新的 SimpleMembership。我将模型更改为包含 Forename 和 Surname,效果很好。
我想更改登录时显示的信息,而不是在视图中使用 User.Identity.Name 我想做类似 User.Identity.Forename 的操作,实现此目的的最佳方法是什么?
仍在尝试使用 MVC4 掌握新的 SimpleMembership。我将模型更改为包含 Forename 和 Surname,效果很好。
我想更改登录时显示的信息,而不是在视图中使用 User.Identity.Name 我想做类似 User.Identity.Forename 的操作,实现此目的的最佳方法是什么?
Yon 可以利用@Html.RenderAction()
ASP.NET MVC 中可用的功能来显示此类信息。
_Layout.cshtml 查看
@{Html.RenderAction("UserInfo", "Account");}
查看模型
public class UserInfo
{
public bool IsAuthenticated {get;set;}
public string ForeName {get;set;}
}
帐户控制器
public PartialViewResult UserInfo()
{
var model = new UserInfo();
model.IsAutenticated = httpContext.User.Identity.IsAuthenticated;
if(model.IsAuthenticated)
{
// Hit the database and retrieve the Forename
model.ForeName = Database.Users.Single(u => u.UserName == httpContext.User.Identity.UserName).ForeName;
//Return populated ViewModel
return this.PartialView(model);
}
//return the model with IsAuthenticated only
return this.PartialView(model);
}
用户信息视图
@model UserInfo
@if(Model.IsAuthenticated)
{
<text>Hello, <strong>@Model.ForeName</strong>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]
</text>
}
else
{
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}
这做了一些事情并带来了一些选项: