0

我正在构建一个 BaseController ,我希望有一个函数可以输出并检查用户是否经过身份验证并用用户名或“Guest”填充变量。然后我需要从我的布局视图中访问该变量(以打印诸如“hello,USER”之类的内容)。我已经成功构建了该方法,但我无法弄清楚如何将结果分配给布局视图(或与从 BaseController 继承的控制器相关的任何其他视图)可以访问的变量。

4

1 回答 1

3

您可以将其存储在ViewBag基本控制器中:

public class BaseController : Controller {
    protected override void OnActionExecuting(ActionExecutingContext filterContext) {
        ViewBag.UserName =
            filterContext.HttpContext.User.Identity.IsAuthenticated
                ? filterContext.HttpContext.User.Identity.Name
                : "GUEST";

        base.OnActionExecuting(filterContext);
    }
}

让您的所有控制器都从基本控制器继承......然后您的视图可以变成:

<p>Hello @ViewBag.UserName</p>
于 2014-03-06T01:25:25.150 回答