【发布时间】:2014-06-17 02:15:14
【问题描述】:
我正在将 JSON 从客户端修补到我的 Web API 2 控制器。
请求看起来像:
Request URL: http://localhost:28029/PlaylistItem/5df2b99f-e021-4c81-8ff5-a34c013470aa
Request Payload: { sequence: 5000 }
我的控制器的方法如下:
[Route("{id:guid}")]
[HttpPatch]
public void Patch(Guid id, Delta<PlaylistItemDto> playlistItemDto)
{
}
PlaylistItemDto 的样子:
public class PlaylistItemDto
{
public Guid PlaylistId { get; set; }
public Guid Id { get; set; }
public int Sequence { get; set; }
...
}
这成功向控制器发送请求,但由于区分大小写而无法正常工作。 OData 库未将序列正确转换为序列。
我找到了一个关于该问题的线程asp.net mvc web api partial update with OData Patch,但我发现解决方案乏善可陈。这个问题目前没有可行的解决方案吗?区分大小写似乎是 PATCHing JSON 数据从客户端到服务器的一个非常常见的用例。
【问题讨论】:
-
你最后是怎么解决的?下面的答案似乎集中在 JSON.net 序列化程序上,Odata 使用完全不同的序列化程序。我现在有同样的问题。我最终修复了有效负载,因为 Odata 是一个标准,并且不想真正改变任何不是真正预期的东西。
标签: json asp.net-web-api2