System.Web.Mvc.Controller初始化

时间:2009-11-05 09:38:40

标签: 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);

    }

}

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

这有意义吗?

非常感谢,

ETFairfax。

2 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:-1)

我不确定这是不是你想要的,但试试这个:

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    if (something == true)
        RedirectToAction("DoSomething", "Section");
    else
        base.Initialize(requestContext);
}