禁用ASP.NET WebAPI应用程序中的HTTP谓词限制
本文关键字:HTTP 谓词 ASP NET WebAPI 应用程序 禁用 | 更新日期: 2023-09-27 18:00:00
我正试图将一些RPC风格的方法添加到我的WebAPI应用程序中,如本文所述:
ASP.NET Web API中的REST与RPC?谁在乎;两者兼而有之。
但在当前版本的WebAPI中,他们似乎添加了一些限制,现在我不得不将这些[HttpGet]&每一个名称与某个HTTP谓词不匹配的方法的联合属性。如果我不这样做,那么我得到405"方法不允许"。
有没有什么简单的解决方案可以禁用这种行为,这样我就可以使用不带HTTP谓词属性的任意名称的控制器方法?
名称不必与动词匹配,但我认为一些动词信息会有所帮助。这对我有效:
[HttpGet]
public string ApiVersion()
[HttpPost]
public string SomethingElse(SomeObj myobj)
WebApiConfig路由为:
//http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/
config.Routes.MapHttpRoute(
name: "DefaultApiRpc",
routeTemplate: "api/v{version}/rpc/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional } // for non-restful rpc calls ('cos they are still handy)
);