我有 ac#.net MVC 应用程序。我正在使用 jQuery UI 自动完成。我创建了一个有效的 JSON 字符串以发送到自动完成并将其添加到视图中,如下所示:
$(document).ready(function() {
autoCompleteParams[@Model.Id] = jQuery.parseJSON(@Html.Raw(Json.Encode(Model.ParamValueListJson)));
// Handles onchange for autocomplete
$reports.initParamList('@Model.Id');
});
当我检查 的值ParamValueListJson
并通过JSON
验证运行它时,它是一个有效的字符串。但是,它很长。粘贴到 Word 中时,它是 98 页和 424,638 个字符(包括空格)。
当我查看返回到视图的 html 时,专门检查了结果值,我可以看到字符数下降到 31,424。因为它被截断,JSON
所以无效,我收到错误“未捕获的语法错误:意外字符串”
如果我限制返回的记录,那么一切都会再次起作用。但是,我不能那样做。我需要所有值作为选项。
处理这个问题的最佳方法是什么?我可以确保将完整的JSON
字符串返回到视图中吗?还有另一种方法可以为自动完成创建对象吗?或者,我是否需要人为限制 的长度,JSON
然后在视图中组合结果?
对此的任何帮助表示赞赏。到目前为止,谷歌搜索一直没有帮助。
更新
我只是仔细看了一下,现在看到完整的字符串正在传递给视图。AJAX 调用中返回的数据具有完整的字符串。但是,当它执行jQuery.parseJSON
时,它会被截断。
更新 2
删除"
其中一个值字符串中的找到后,一切都按预期工作。显然字符串没有被截断,只是data
开发人员工具中可见的参数没有显示完整的字符串。