使用WebForms,如果我想在每个页面加载时运行一个方法,那么我会在主母版页的Page_Load()
方法中调用此方法。
使用MVC3时是否有其他可能更好的解决方案?
答案 0 :(得分:9)
你可以创建一个类基本控制器
public class BaseController : Controller
{
public BaseController()
{
// your code here
}
}
让你的每个新控制器都像
一样阻止基本控制器public class MyController: BaseController
我也发现basecontroller非常有用,可以存储我在其他控制器中需要很多的其他功能
答案 1 :(得分:6)
我认为在MVC中执行此操作的最合适方法是使用filters
MSDN对它们进行了很好的描述,网上有很多关于它们的文章和解释,例如this one
修改强> This示例甚至更好:它提供了一个简单的动作过滤器,然后在global.asax中注册,并在相关控制器中的实际Action执行之前在每个请求上执行。这样的概念允许您访问请求对象,并在实际控制器执行之前修改您想要的任何内容。
答案 2 :(得分:1)
您可以将代码放在控制器的构造函数中。 像这样:
public class FooController : Controller
{
public FooController()
{
doThings();
}