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财产。
我正在朝着这个方向走吗,还是应该以不同的方式做这件事?