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

Asp.net 如何在MVC3中每次加载页面时运行一个方法?,asp.net,asp.net-mvc-3,pageload,Asp.net,Asp.net Mvc 3,Pageload,对于WebForms,如果我想在每个页面加载上运行一个方法,那么我会在主母版页的page\u load()方法中调用这个方法 当使用MVC3时,是否有其他更好的解决方案?您可以将代码放入控制器的构造函数中。 像这样: public class FooController : Controller { public FooController() { doThings(); } 您可以创建一个类基控制器 public class BaseControll

对于WebForms,如果我想在每个页面加载上运行一个方法,那么我会在主母版页的
page\u load()
方法中调用这个方法


当使用MVC3时,是否有其他更好的解决方案?

您可以将代码放入控制器的构造函数中。 像这样:

public class FooController : Controller
{
    public FooController()
    {
        doThings();
    }

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

 public class BaseController : Controller
{

    public BaseController()
    { 
        // your code here
    }
}
让你的每一个新控制员都像你一样推动基础控制员

public class MyController: BaseController

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

我认为在MVC中实现这一点最合适的方法是使用
MSDN对它们进行了很好的描述,网上有几十篇关于它们的文章和解释,例如

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

每一个控制器?我希望在整个应用程序中的每次页面加载时都调用此函数。如果我有100个控制器会怎么样?每次我都要加上这个。此外,我还必须记住在任何新控制器中添加此功能。我认为这不是很好的扩展。是的,你是对的。抱歉,我不明白您希望在应用程序中的每个视图上都使用此选项。basecontroller的答案看起来不错。如果您必须为每个控制器运行不同的代码,那么David的建议对我来说是有意义的,这正是我想要的。然而,我同意这不是科特所要求的。