System.Web.Mvc.Controller初始化

ETF*_*fax 8 asp.net asp.net-mvc controller

我有以下基本控制器......

public class BaseController : Controller
{

    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {

        if (something == true)
            RedirectToAction("DoSomething", "Section");

        base.Initialize(requestContext);

    }

}
Run Code Online (Sandbox Code Playgroud)

基本上,我的所有控制器都将从BaseController派生,如果某个值为true,它将重定向它们.但是,这段代码不起作用!调用RedirectToAction,但在Initialize方法完成后,它将继续调用最初调用的控制器.

那有意义吗??

非常感谢,

ETFairfax.

Mis*_* N. 15

我认为你压倒错误的方法.尝试使用OnActionExecuting或OnActionExecuted.

protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
      if (something == true)
          filterContext.Result =  RedirectToAction("DoSomething", "Section");
      else
          base.OnActionExecuting(filterContext);
    }
Run Code Online (Sandbox Code Playgroud)