gpt4 book ai didi

c# - 有条件地禁用 ASP.NET MVC Controller

转载 作者:可可西里 更新时间:2023-11-01 07:58:45 25 4
gpt4 key购买 nike

有条件地禁用 ASP.NET MVC Controller 的最佳方法是什么?

如果 web.config 中的某些值是“true”,我想访问 Controller 操作,如果它是“false”,则返回 404

我应该写自己的属性吗?

更新:寻找比 Action 过滤器属性更优雅的解决方案(能够将非常量参数传递给属性构造函数)

    [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);
}
}
}

最佳答案

最简单的可能是实现自定义操作过滤器:

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/understanding-action-filters-cs

您还可以有条件地添加与该 Controller 匹配的路由,这将导致返回 404。

关于c# - 有条件地禁用 ASP.NET MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com