【发布时间】:2014-08-20 03:37:45
【问题描述】:
我有一个 WebApi 控制器和一个使用 ajax 调用该视图的视图。
直到昨天一切都很好,但是现在,我运行了这个项目,传输的数据被截断了。 示例如下:
这是我的 AjAx 调用:
var data = JSON.stringify(aoData);
oSettings.jqXHR = $.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": data,
"success": fnCallback,
"contentType": 'application/json'
});
这是我的控制器:
public object GetAllProductsForDataTable(DataTableRequestItem[] pRequest)
{
...
}
发送前的数据是正确的。它完成了,但是我的控制器在参数上收到了一个 NULL 值,所以我检查了收到的请求数据,发现 json 字符串被截断了。 我通过从控制器调用 Request.Content.ReadAsStringAsync().Result 得到这样的结果:
alue\":false},{\"name\":\"bSearchable_5\",\"value\":true}
实际的 JSON 值要长得多,但这只是它的开始,因此您可以看到它被截断了。
检查值的长度是 1393,所以我认为它的长度可能有问题,但无法弄清楚。
更新
检查截断值的长度,我看到是 369... 这应该给出一些提示,因为对象的总长度减去读取值的总长度......是 1024......
一定有什么东西在发出从 char 1024 读取的请求
更新 2
我将控制器操作更改为接收 HttpRequestMessage 而不是我的对象,并且使用 ReadAsStringAsync().Result 的结果返回 FULL 字符串。 我猜 MVC 正在做的参数绑定有问题。
【问题讨论】:
标签: ajax json asp.net-mvc-5