如何在MVC3中每次加载页面时运行一个方法?

Cur*_*urt 5 asp.net pageload asp.net-mvc-3

使用WebForms,如果我想在每个页面加载上运行一个方法,那么我会在主母版页的方法中调用此方法Page_Load().

使用MVC3时是否有替代方案,或许是更好的解决方案?

mid*_*pat 9

你可以创建一个类基控制器

 public class BaseController : Controller
{

    public BaseController()
    { 
        // your code here
    }
}
Run Code Online (Sandbox Code Playgroud)

让你的每个新控制器都像基本控制器一样

public class MyController: BaseController
Run Code Online (Sandbox Code Playgroud)

我也发现basecontroller非常有用,可以存储我在其他控制器中需要很多的其他功能


Yav*_*nyP 6

我认为在MVC中最合适的方法是使用过滤器
MSDN对它们进行了很好的描述,并且网上有很多关于它们的文章和解释,比如这个

编辑 这个示例甚至更好:它提供了一个简单的动作过滤器,然后在global.asax中注册,并在相关控制器中的实际动作执行之前,在每个请求上执行.这样的概念允许您访问请求对象,并在实际控制器执行之前修改您想要的任何内容.