如何避免在Web Api控制器中重复http方法属性?

时间:2015-02-03 07:25:29

标签: asp.net asp.net-web-api

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

[HttpPost]
public void Method1() {  }

[HttpPost]
public void Method2() {  }

...

有没有办法配置路由/基本控制器通过POST访问这些方法而不为每个方法设置属性?就像这样

public void Method1() {  }

public void Method2() {  }

...

如果我尝试调用没有[HttpPost]的方法,我会收到HTTP 405错误。

1 个答案:

答案 0 :(得分:2)

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

GetXXX
PostXXX
PutXXX
DeleteXXX

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