相关疑难解决方法(0)

Web API 2 不处理整数的 PATCH 请求

我在使用 Web API 2 (.net 4.5.1) 时遇到问题,因为它似乎忽略属性为整数的 PATCH 请求,但处理其他类型时没有问题(我已经测试了字符串和小数) 。

\n\n

我\xe2\x80\x99在http://playapi.azurewebsites.net/api/products上设置了一个带有“products”控制器的不安全测试 API 。如果您对该 URL 执行 GET,您\xe2\x80\x99 将得到类似以下产品的信息:

\n\n
{"Id": 1,"Name": "Xbox One","Category": "gaming","Price": 300,"Stock": 5}\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x98Name\xe2\x80\x99 和 \xe2\x80\x98Category\xe2\x80\x99 都是字符串,\xe2\x80\x98Price\xe2\x80\x99 是 Decimal,\xe2\x80\ x98Stock\xe2\x80\x99 是一个整数。

\n\n

如果您发送这些请求,它们都会起作用(您\xe2\x80\x99将获得更新实体的 200/OK):

\n\n\n\n

但是,如果您发送此信息,它会返回 200/OK,但不会进行更新,库存仍保持原始值

\n\n\n\n

我的控制器代码是相当标准的样板代码(来自脚手架的 ODATA 控制器,但移至标准 API 控制器):

\n\n
// PATCH: api/Products/5\n[AcceptVerbs("PATCH", "MERGE")]\npublic async Task<IHttpActionResult> PatchOrder(int id, Delta<Product> patch)\n{\n …
Run Code Online (Sandbox Code Playgroud)

asp.net rest integer asp.net-web-api http-patch

5
推荐指数
1
解决办法
3360
查看次数

标签 统计

asp.net ×1

asp.net-web-api ×1

http-patch ×1

integer ×1

rest ×1