以下是 Visual Studio 创建的标准默认 ASP.NET MVC 项目中的 LogOn 用户控件 (LogOnUserControl.ascx):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%
if (Request.IsAuthenticated) {
%>
Welcome <b><%: Page.User.Identity.Name %></b>!
[ <%: Html.ActionLink("Log Off", "LogOff", "Account") %> ]
<%
}
else {
%>
[ <%: Html.ActionLink("Log On", "LogOn", "Account")%> ]
<%
}
%>
插入到母版页中:
<div id="logindisplay">
<% Html.RenderPartial("LogOnUserControl"); %>
</div>
<%: Page.User.Identity.Name %>
代码显示当前登录的用户的登录名。
如何显示用户的FirstName
相反,哪个保存在配置文件中?
我们可以在 Controller 中读取它,如下所示:
ViewData["FirstName"] = AccountProfile.CurrentUser.FirstName;
例如,如果我们尝试这样做:
<%: ViewData["FirstName"] %>
它仅在 Controller 调用的页面上呈现,其中 ViewData["FirstName"]
值已分配。
最佳答案
雷姆,
这是其中一种情况,拥有一个基本 Controller 可以解决您的“所有”问题(好吧,无论如何,有些问题)。在你的基本 Controller 中,你会有类似的东西:
public abstract partial class BaseController : Controller
{
// other stuff omitted
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
ViewData["FirstName"] = AccountProfile.CurrentUser.FirstName;
base.OnActionExecuted(filterContext);
}
}
并在所有 Controller 中使用它,例如:
public partial class MyController : BaseController
{
// usual stuff
}
或类似的。然后,您就可以始终将其用于所有 Controller 上的每个操作。
看看它是否适合你。
关于asp.net-mvc - ASP.NET MVC 显示配置文件中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036582/