gpt4 book ai didi

c# - 为整个 Controller 指定 [HttpGet]、[HttpPost] 或 [AcceptVerbs]

转载 作者:行者123 更新时间:2023-11-30 18:28:51 25 4
gpt4 key购买 nike

可以在 ASP.NET MVC 中为整个 Controller 指定许多操作过滤器,从而将其应用于 Controller 中的所有操作。例如:

[Authorize]
public class MyController : Controller
{
// ....
}

表示[Authorize]适用于controller中的所有action,非常方便。

但是当我尝试将 [HttpGet][HttpPost][AcceptVerbs(...)] 放在 Controller 上时,编译器提示该属性仅可用于方法(这是正确的,因为它们是用 [AttributeUsage] 定义的,仅指向方法)。

如果我想将 Controller 中的所有操作仅限于 POST 动词怎么办?

我的问题是:

  • 框架中是否有任何方法可以实现这一点,而无需编写我自己的属性?
  • 为什么这些属性以这种方式实现,不允许在 Controller 上使用?

最佳答案

HttpGet和HttpPost继承自ActionMethodSelectorAttribute类,仅对方法有效。我认为您需要创建自己的属性。

关于c# - 为整个 Controller 指定 [HttpGet]、[HttpPost] 或 [AcceptVerbs],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066296/

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