Asp.net 如何避免在WebApi控制器中重复http方法属性?

Asp.net 如何避免在WebApi控制器中重复http方法属性?,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有几个ASP.NET WebApi控制器,每个控制器中都有一些方法。所有这些方法都应该只能使用HTTPPOST访问。我试图避免的是每个方法的显式[HttpPost]属性用法。是的,我很懒。 我的代码看起来像 [HttpPost] public void Method1() { } [HttpPost] public void Method2() { } ... 有没有办法配置route/base controller通过POST访问这些方法,而不为每个方法设置属性?就这样 publi

我有几个ASP.NET WebApi控制器,每个控制器中都有一些方法。所有这些方法都应该只能使用HTTPPOST访问。我试图避免的是每个方法的显式[HttpPost]属性用法。是的,我很懒。 我的代码看起来像

[HttpPost]
public void Method1() {  }

[HttpPost]
public void Method2() {  }

...
有没有办法配置route/base controller通过POST访问这些方法,而不为每个方法设置属性?就这样

public void Method1() {  }

public void Method2() {  }

...

若我尝试调用不具有[HttpPost]的方法,我将收到HTTP 405错误。

ASP.NET Web API使用约定优先于配置。如果您按照约定以以下方式命名您的操作

GetXXX
PostXXX
PutXXX
DeleteXXX

。。。您不必使用属性。如果操作以适当的HTTP谓词开始,Web API将处理它。

ASP.NET Web API使用约定优先于配置。如果您按照约定以以下方式命名您的操作

GetXXX
PostXXX
PutXXX
DeleteXXX

。。。您不必使用属性。如果操作以适当的HTTP谓词开始,Web API将处理它。

ASP.NET Web API使用约定优先于配置。如果您按照约定以以下方式命名您的操作

GetXXX
PostXXX
PutXXX
DeleteXXX

。。。您不必使用属性。如果操作以适当的HTTP谓词开始,Web API将处理它。

ASP.NET Web API使用约定优先于配置。如果您按照约定以以下方式命名您的操作

GetXXX
PostXXX
PutXXX
DeleteXXX

。。。您不必使用属性。如果操作以适当的HTTP谓词开始,Web API将处理它。

我的控制器设计得不像REST服务,而是RPC。我想让他们不知道协议。这就是为什么我不喜欢使用“Post”前缀。谢谢。那么除了使用属性,你没有其他现成的选择。我的控制器设计得不像REST服务,而是RPC。我想让他们不知道协议。这就是为什么我不喜欢使用“Post”前缀。谢谢。那么除了使用属性,你没有其他现成的选择。我的控制器设计得不像REST服务,而是RPC。我想让他们不知道协议。这就是为什么我不喜欢使用“Post”前缀。谢谢。那么除了使用属性,你没有其他现成的选择。我的控制器设计得不像REST服务,而是RPC。我想让他们不知道协议。这就是为什么我不喜欢使用“Post”前缀。谢谢。那么除了使用属性,你没有其他现成的选择了。