呼び出される前に、MVCのActionResultを返す私は私の他のコントローラが初期化中は、特定のコントローラメソッドが
public abstract class BaseController : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
...
}
}
を継承しているから、ベースコントローラクラスを持っている私はいくつかのセットアップをやっている、といくつかのケースではどこがあります私は実行を短絡し、実際のActionメソッドの実行を完全にスキップしてActionResultの戻り値に直接ジャンプしたいと思います。これらの線に沿って何か
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プロパティに割り当てだと思う何
。
これで正しい方向に進むのですか、これを別の方法で行うべきですか?