2014-03-06 111 views
0

我正在构建一个BaseController,我想要一个函数熄灭并检查用户是否已通过身份验证并使用用户名或“Guest”填充变量。然后我需要从我的布局视图中访问该变量(以打印诸如“hello,USER”之类的东西)。我已经成功构建了该方法,但是我无法弄清楚的是如何将结果分配给布局视图(或绑定到从BaseController继承的控制器的任何其他视图)可以访问的变量。将数据从BaseController传递到视图

回答

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> 
+0

谢谢,我错过了将它放在'OnActionExecuting'方法中。 – Matthew