添加代码在任何视图之前运行?相当于母版页面加载?

bil*_*ean 3 .net asp.net-mvc-3

什么可能等同于MVC中的MasterPage代码隐藏页面加载?我想在每个视图返回之前检查用户是否登录了我的本地应用程序或Facebook或Twitter.

Tri*_*dus 5

几个选项.

创建一个基本控制器并使用它的初始化方法.让你的其他控制器继承它.这可能最接近于MasterPage中的代码如何工作.

public abstract class BaseController : Controller
{
    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
       //Do Stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我想要在任何视图之前运行的代码的方法,以及在布局视图中设置的代码(即:在每个页面上使用的布局内容).

或者,仍然支持Global.asax,您可以使用Application_BeginRequest或Application_PostAcquireRequestState.