有條件禁用ASP.NET MVC控制器的最佳方法是什麼?有條件地禁用ASP.NET MVC控制器
我希望有控制器動作的訪問,如果在web.config中的一些值是「真」和404,如果它是「假」
我應該寫我自己的屬性?
UPDATE: 尋找不如行動過濾屬性更優雅的解決方案(與通過不恆定的參數屬性構造的能力)
[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);
}
}
}
感謝。已經寫了action filter屬性(請參閱我的評論)。但也許存在一些更優雅的解決方案? – 2012-07-23 01:16:32
我不知道你在這裏的目的,但也許最好不要在應用程序級別這樣做?我正在考慮使用IIS url-rewrite模塊來爲你想要返回的路由設置404規則。看看下面的例子:http://blogs.iis.net/ruslany/archive/2009/04/ 08/10-url-rewriting-tips-and-tricks.aspx – igz168 2012-07-23 02:23:22
沒有。我需要能夠從web.config文件切換它。 – 2012-07-23 02:26:00