我的操作方法在控制器类中具有以下签名:
[RoutePrefix("api/fun")]
public class FunController : ApiController
{
[HttpPost]
[Route("domagic")]
public HttpResponseMessage PerformMagic(string email)
{
...
}
}
当我使用Chrome中的PostMan或我写的iOS客户端发帖时,我得到405方法不允许。我发布到/ api / fun / domagic。将请求类型更改为GET,给我一个错误,实际上告诉我Web API正在映射到不同的方法。
在我的WebApiConfig中,我致电config.MapHttpAttributeRoutes();
。在我的Web.config中,我删除所有system.webServer / handler,然后添加以下处理程序。 (这是File-> New Project之后的所有样板默认内容)
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
我将以下内容添加到system.webServer / modules:
<remove name="WebDAVModule"/>
从我的所有搜索中,这个设置应该有效,但它没有。 POST总是失败。
我需要做些什么才能让它发挥作用?