我正在使用.net Web API V1构建一些restful api.
我们正在尝试为web api定义一些路由.我在定义'Put'和'patch'的路线时遇到了一些问题.
它们具有相同的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**)} );
Yishai Galat.. 90
编辑:更新到最新版本的WebAPI目前5.2.7(https://www.nuget.org/packages/Microsoft.AspNet.WebApi/)
原版的:
如果你不能使用:
new HttpMethod("PATCH")
请参阅以下示例在Web API源代码中的使用
https://github.com/aspnetwebstack/aspnetwebstack/blob/master/src/System.Web.Http/HttpPatchAttribute.cs