ASP.NET Web Api form-urlencoded 字符串反序列化

ASP.NET WebApi form-urlencoded string deserialize

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

1
2
3
4
5
6
7
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

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

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

1
2
3
4
5
6
7
public class Snapshot
{
    public List<SectionState> sections { get; set; }
    public bool errors { get; set; }
    public double date { get; set; }
    public double trmtimestamp { get; set; }
}


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

1
new System.Net.Http.Formatting.FormDataCollection(query).ReadAs<Snapshot>();

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