我正在使用 Json.NET 来反序列化 jQuery.post() JSON 参数。
回发的原始值采用以下格式
jobs=4-5-6-7&invoiceDate=04-05-11
我尝试反序列化为的类是
public class InvoiceRequest
{
public DateTime InvoiceDate { get; set; }
public string JobList { get; set; }
}
我为此使用的代码是
var sr = new System.IO.StreamReader(Request.InputStream);
var line = sr.ReadToEnd();
var deserializedProduct = JsonConvert.DeserializeObject<InvoiceRequest>(line);
问题是,当第三条线被击中时,什么都不会发生。当我单步执行代码时,它到达了那一行,然后......无。步进器消失,页面永远不会收到任何响应。
谁能解释我在这里做错了什么?
以下是application/x-www-form-urlencoded
请求,而不是 JSON:
jobs=4-5-6-7&invoiceDate=04-05-11
如果需要 JSON,请求应如下所示:
{ 'jobs': '4-5-6-7', invoiceDate: '04-05-11' }
它不起作用,因为您的数据不是 JSON。要么更改你的 JavaScript,让它以 JSON 的形式发送数据,要么使用 HttpUtility.ParseQueryString
来解析它当前的格式。