Dot-Net
HttpMethod 中缺少 Web API 路由約束更新檔
我正在使用 .net Web API V1 建構一些寧靜的 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**)} );
編輯:更新到目前最新版本的 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>