ASP.NET WebApi 表单 urlencoded 字符串反序列化

Max*_*rev 1 asp.net-mvc-4 asp.net-web-api

我使用 WebApi 和 Client 开发服务,这些服务通过 POST 方法(以节省带宽)发送到该服务的 gzipped 数据。他们俩都在我的控制之下。在服务器上,我收到压缩数据,解压缩它并有如下字符串:

section[0][caption]=Foo&
section[0][address]=175896&
section[0][counters][]=2&
section[0][counters][]=2&
section[0][errors][]=ERR_NOT_AVAILABLE&
errors=true&
trmtimestamp=1346931864358
Run Code Online (Sandbox Code Playgroud)

即简单的 www-form-urlencoded 字符串。

ASP.NET MVC4 WebApi 是否有一些方法可以将此字符串绑定或反序列化到我的模型?

section[0][caption]=Foo&
section[0][address]=175896&
section[0][counters][]=2&
section[0][counters][]=2&
section[0][errors][]=ERR_NOT_AVAILABLE&
errors=true&
trmtimestamp=1346931864358
Run Code Online (Sandbox Code Playgroud)

Hon*_*Sun 8

您可以使用以下代码来解析字符串:

new System.Net.Http.Formatting.FormDataCollection(query).ReadAs<Snapshot>();
Run Code Online (Sandbox Code Playgroud)

ReadAs 是在 System.Web.Http.ModelBinding.FormDataCollectionExtensions 下定义的扩展方法。