我试图将一些RPC样式方法添加到我的WebAPI应用程序中,如本文所述:
REST vs. RPC in ASP.NET Web API? Who cares; it does both.
但是在当前版本的WebAPI中,它们似乎增加了一些限制,现在我被迫将这些[HttpGet]和& Co属性放在每个没有名称匹配某些HTTP的方法上动词。如果我不这样做那么我得到405"方法不被允许"。
是否有任何简单的解决方案可以禁用此行为,因此我可以使用任意名称的控制器方法而不使用HTTP谓词属性?
答案 0 :(得分:1)
名称不必与动词匹配,但我认为一些动词信息有帮助。 这对我有用:
[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)
);