什么可能等同于MVC中的母版页代码隐藏页面加载?我想在每个视图返回之前检查用户是否登录了我的本地应用程序或Facebook或Twitter。
答案 0 :(得分:5)
几种选择。
创建一个基本控制器并使用它的初始化方法。让你的其他控制器继承它。这可能最接近于MasterPage中的代码如何工作。
public abstract class BaseController : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
//Do Stuff
}
}
这是我想要在任何视图之前运行的代码的方法,以及在布局视图中设置的代码(即:在每个页面上使用的布局内容)。
或者仍然支持Global.asax,您可以使用Application_BeginRequest或Application_PostAcquireRequestState。
答案 1 :(得分:3)
请改用ActionFilters。在框架中已经有一个授权过滤器。继承它并根据你的意愿弯曲它。
详细了解操作过滤器here
答案 2 :(得分:0)
您使用的是母版页吗?
如果是这样,只需在那里添加对代码的调用(将其保留为方法调用并在另一个类中实现逻辑)。
或者,从System.Web.UI.View派生一个新的View类,覆盖OnPreRender或OnLoad事件,并将其用作您自己视图的基类。
答案 3 :(得分:0)
使用局部视图并将其包含在母版页/布局中。
您也可以将其与部分操作结合使用,请参阅此处 - asp.net MVC partial view controller action
默认的mvc3 vstudio模板在views / shared目录中包含一个_logonpartial文件,可能是一个很好的起点