asp.net-web-api-405使用AttributeRouting.PUTAttribute,除非我
发布时间:2020-12-16 07:05:47 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC项目,我试图更新以包括WebApi.为了获得所需的路由,我们使用AttributeRouting.除了返回405的[PUT]之外,所有调用似乎都正确路由.我已经简化了控制器和操作,并且仍然使用[PUT]接收错误,除非我也包含[HttpPut].不确定我错过了什么. [RoutePrefix("api
我有一个MVC项目,我试图更新以包括WebApi.为了获得所需的路由,我们使用AttributeRouting.除了返回405的[PUT]之外,所有调用似乎都正确路由.我已经简化了控制器和操作,并且仍然使用[PUT]接收错误,除非我也包含[HttpPut].不确定我错过了什么.
[RoutePrefix("api/Sites")] public class SitesController : BaseApiController { [POST("")] public bool CreateSite(SiteSignupArgs args) { ... } [GET("Statuses")] public IList<SiteAuditViewModel> GetStatuses() { ... } [PUT("Statuses/{siteId}")] [HttpPut] // This is required or 405 is returned public HttpResponseMessage UpdateStatus(string siteId,UpdateStatusArgs args) { ... } [DELETE("Statuses/{siteId}")] public HttpResponseMessage Delete(string siteId) { return Request.CreateResponse(HttpStatusCode.OK); } } AttributeRouting.Core 3.5.6版,AttributeRouting.Core.Http,AttributeRouting.Core.Web,AttributeRouting.WebApi MVC4 未安装WebDAV. 解决方法
你所看到的是预期的行为.如果操作名称没有带有“Get”,“Post”,“Put”,“Delete”等动词的前缀,则Web API中的Action Selector默认假定操作为动词POST.
现在,即使您明确指定了[PUT(“Statuses / {siteId}”)]属性,它也无法工作,因为,Action选择器从System.Web.Http命名空间中查找属性,如HttpGetAttribute,HttpPostAttribute,HttpPutAttribute等. 由于AttributeRouting的PUTAttribute不属于上述类型,因此Action选择器不会考虑它,仍然认为它是默认的,即POST.因此,使用HttpPut属性的解决方法是正确的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 无法为Elmah配置邮件
- asp.net-mvc – MVC4表单输入验证 – 自定义错误范围
- datetime – 将时间转换为UTC vbScript
- asp.net-core – Visual Studio 2015中的ASP.NET核心支持?
- asp.net-mvc – 如何关闭Visual Studio MVC视图中的大括号和
- asp.net – .Net System.Mail.Message添加多个“To”地址
- ASP.NET ViewState的工作原理
- asp.net – 总是显示FooterTemplate,甚至没有数据
- asp.net-mvc – BreadCrumb trail MVC3和Razor
- MVC .Net Cascade在使用EF Code First Approach时删除
推荐文章
站长推荐
- asp.net-mvc – 在修改现有子实体框架的同时添加
- asp.net-mvc – AuthenticationManager.SignIn与
- asp.net – 读取文件属性有多贵? .净
- 如何使用asp.net web.sitemap和菜单控件与bootst
- asp.net – VS.NET 2015项目不会构建
- .NET Framework 4.5 的五大特性
- asp.net-mvc – ASP.NET MVC是否容易受到oracle的
- 是否有可能在asp经典和asp.net之间共享会话状态
- asp.net-mvc – IIS劫持CORS Preflight OPTIONS请
- 企业库无法在asp.net应用程序中查找配置源文件
热点阅读