405方法不允许Web API 2
我已经浏览了几乎所有我能找到的文章,SO等等。 我已经对Web.config
进行了更改以满足答案,因为它们似乎都指向删除WebDAV
模块和处理程序。
但是,我仍然收到错误:
405方法不允许
请求的资源不支持http方法’PUT’。
注意:这最初只是一个MVC 4项目。 我添加了工件来支持Web API。 好像我可能错过了一些东西。
注意: GET
调用在Angular中运行得很好。
Web API路由配置
configuration.Routes.MapHttpRoute( name: "Default API", routeTemplate: "api/{controller}/{id}", defaults: new { action = "Get", id = RouteParameter.Optional }, constraints: new { id = @"[da-z-]{36}" }); configuration.Routes.MapHttpRoute( name: "Default API with Action", routeTemplate: "api/{controller}/{action}", defaults: new { action = "Get" }); var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; formatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
Web.config文件
PUT
API条目
public async Task Put([FromBody] EditUserViewModel viewModel)
客户端
vm.model.$update(function () { $state.go(userStates.app); });
是否有可能陷入第二种路线配置? 如果是这样,我如何validation.NET尝试使用的路由配置?
最后,似乎是我试图使路由表复杂化。 我最终还是回到了这个:
configuration.MapHttpAttributeRoutes(); configuration.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional });
请注意我添加了configuration.MapHttpAttributeRoutes();
同样。
在这两个变化之后,一切都运转良好,信不信由你。 Web.config
看起来像这样:
我也在努力解决这个问题,并发现我必须多做一点。 尝试一下:
上述就是C#学习教程:405方法不允许Web API 2分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958094.html