ASP.NET MVCコントローラーを条件付きで無効にする最良の方法は何ですか?
web.configの値が「true」の場合はコントローラーのアクションにアクセスし、「false」の場合は404にアクセスしたい
自分の属性を書くべきですか?
更新:アクションフィルター属性よりも洗練されたソリューションを探しています(定数パラメーターではないパラメーターを属性コンストラクターに渡す機能を備えています)
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public class CloseForSomeSettingAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool mySettingValue = MySettingManager.GetMySettingValue();
if (mySettingValue)
{
filterContext.Result = new HttpStatusCodeResult(404);
}
else
{
base.OnActionExecuting(filterContext);
}
}
}