我正在使用.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 源代码中的使用示例
关于.net - HttpMethod 中缺少 Web API 路由约束补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599817/