Asp.net
System.Web.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 方法完成後,它將繼續移動到最初呼叫的控制器。
那有意義嗎??
非常感謝,
ETF 費爾法克斯。
我認為您正在覆蓋錯誤的方法。嘗試使用 OnActionExecuting 或 OnActionExecuted。
protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (something == true) filterContext.Result = RedirectToAction("DoSomething", "Section"); else base.OnActionExecuting(filterContext); }
我不確定這是否是你想要的,但試試這個:
protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (something == true) RedirectToAction("DoSomething", "Section"); else base.Initialize(requestContext); }