カスタム属性を作成すると仮定すると...
public class SpecialActionFilterAttribute : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// set some parameters here.
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
}
}
次に、カスタムViewEngineを作成し、FindView /FindPartialView...をオーバーライドします。
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
// how can I get those parameters here?
return base.FindView(controllerContext, viewName, masterName, useCache);
}
カスタム属性を利用して、ある種の「フラグ」をカスタムビューエンジンに渡すことができるようにしたいと思います。これは可能ですか?