.net - HttpMethod 中缺少 Web API 路由约束补丁

标签 .net asp.net-mvc rest asp.net-web-api asp.net-web-api-routing

我正在使用.net Web API V1 构建一些restful api。

我们正在尝试为 Web API 定义一些路由。我在定义“放置”和“补丁”的路线时遇到一些问题。

它们具有相同的 URL,唯一的不同在于 HttpMethod。在HttpMethod中,不​​支持Patch http://msdn.microsoft.com/en-us/library/system.net.http.httpmethod(v=vs.118).aspx

config.Routes.MapHttpRoute(
    "UpdateCustomer",
    "api/customers/id/{id}",
    new {controller = "Customers", action = "UpdateCustomer"},
    new {id = @"\d+", httpMethod = new HttpMethodConstraint(HttpMethod.Put)}
);

config.Routes.MapHttpRoute(
    "PatchCustomer",
    "api/customers/id/{id}",
     new {controller = "Customers", action = "PatchCustomer"},
     new {id = @"\d+", httpMethod = new HttpMethodConstraint(HttpMethod.**Patch**)}
);

最佳答案

编辑:更新到当前最新版本的 WebAPI 5.2.7 ( https://www.nuget.org/packages/Microsoft.AspNet.WebApi/ )

原文:

如果您不能使用:

新的 HttpMethod("PATCH")

请参阅以下 Web API 源代码中的使用示例

https://github.com/aspnetwebstack/aspnetwebstack/blob/master/src/System.Web.Http/HttpPatchAttribute.cs

关于.net - HttpMethod 中缺少 Web API 路由约束补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599817/

相关文章:

c# - 无法从完整的 .NET 项目中引用 .NET Core 类库

asp.net-mvc - 映射片段 Entity Framework 错误

java - 以功能方式使用 Rest Service

php - Backbone.js 模型 urlRoot 错误

c# - WMI 重启远程机器

c# - HtmlAgilityPack 获取一个DIV内的所有链接

asp.net-mvc - ASP.NET 捆绑和缩小。每个请求运行一次?

javascript - jQuery ajax 响应绑定(bind)到 MVC 模型表

rest - 我应该使用 POST 还是 PUT 进行登录请求,为什么?

c# - C#.net 4.5-异步任务和套接字