5

对于 WebForms,如果我想在每次页面加载时运行一个方法,那么我会Page_Load()在主 Master Page 的方法中调用这个方法。

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

4

3 回答 3

9

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

 public class BaseController : Controller
{

    public BaseController()
    { 
        // your code here
    }
}

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

public class MyController: BaseController

我还发现 basecontroller 对于存储我在其他控制器中需要很多的其他功能非常有用

于 2012-10-05T08:39:59.210 回答
6

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

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

于 2012-10-05T08:40:14.620 回答
1

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

public class FooController : Controller
{
    public FooController()
    {
        doThings();
    }
于 2012-10-05T08:37:40.567 回答