【发布时间】:2011-09-26 07:03:50
【问题描述】:
在我的网站中,当用户登录时,我想显示用户名并显示注销按钮。
在 ASP.NET 4.0 中,我们可以使用母版页的代码隐藏文件来编写这样的常见代码。但我不知道如何在 MVC3 中实现这一点。我不想在每个页面视图上传递用户名并在每个控制器上添加注销操作链接。
谁能提出更好的方法?
谢谢
萨尔塔克
【问题讨论】:
标签: asp.net-mvc-3 controller master-pages
在我的网站中,当用户登录时,我想显示用户名并显示注销按钮。
在 ASP.NET 4.0 中,我们可以使用母版页的代码隐藏文件来编写这样的常见代码。但我不知道如何在 MVC3 中实现这一点。我不想在每个页面视图上传递用户名并在每个控制器上添加注销操作链接。
谁能提出更好的方法?
谢谢
萨尔塔克
【问题讨论】:
标签: asp.net-mvc-3 controller master-pages
您可以使用部分。默认模板正是这样做的。使用内置向导创建一个新的 ASP.NET MVC 3 应用程序,并查看为您生成并在 _Layout.cshtml 中使用 @Html.Partial("_LogOnPartial") 调用的 _LogOnPartial.cshtml 部分。
这部分看起来像这样:
@if(Request.IsAuthenticated) {
<text>Welcome <strong>@User.Identity.Name</strong>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else {
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}
它检查用户是否经过身份验证,如果是,欢迎他并提供一个注销链接,如果不是,它只提供一个登录链接。
如果您使用的是 WebForms 视图引擎,则相同:
LogOnUserControl.ascx 使用 <% Html.RenderPartial("LogOnUserControl"); %> 从 Site.Master 调用。
【讨论】: