0
我從我的其他控制器繼承具體的控制器方法之前返回的MVC的ActionResult被稱爲
public abstract class BaseController : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
...
}
}
在初始化過程中,我做了一些設置一個基本的控制器類,也有少數情況下,我想將執行過程縮短,直接跳到ActionResult的返回,完全跳過實際Action方法的執行。沿着這些線路
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
if(specialCase)
{
ViewData[...] = specialCaseInformation;
return View("~/Shared/SpecialCase.aspx");
}
}
意圖東西會跳過任何的ActionResult方法將被調用,並與我的全球特例頁面替換它。但我不認爲Initialize是爲了這個。
我認爲我需要做的就是創建一個單獨的ActionFilterAttribute類,覆蓋OnActionExecuting方法,如果specialCase出現,構建一個ViewResult對象,並將其分配給filterContext.Result財產。
我正在朝着這個方向走嗎,還是應該以不同的方式做這件事?