我正在使用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);
问题是当第三行被击中时没有任何反应。当我单步执行代码时,它会到达该行,然后......没有。步进器消失,页面永远不会收到任何响应。
有谁能解释我在这里做错了什么?
答案 0 :(得分:4)
以下是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' }
答案 1 :(得分:3)
它不起作用,因为您的数据不是JSON。要么更改JavaScript以便将数据作为JSON发送,要么使用HttpUtility.ParseQueryString
来解析它当前所处的格式。