我有以下基本控制器...
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。
答案 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);
}