在 ASP.NET MVC 中返回最大 Json 结果的最佳方法

Posted

技术标签:

【中文标题】在 ASP.NET MVC 中返回最大 Json 结果的最佳方法【英文标题】:Best way to return max Json result in ASP.NET MVC 【发布时间】:2018-07-22 05:15:46 【问题描述】:

请告诉我在 ASP.NET MVC 中返回最大 Json 结果的最佳方式。

目前我正在使用:

return Json(jsonData,JsonRequestBehavior.AllowGet);

在这种情况下,如果方法返回 Json 的最大大小,则 Ajax 会抛出错误。 对于这个错误,我使用这个解决方案。

var jsonResult = Json(jsonData, JsonRequestBehavior.AllowGet);
jsonResult.maxJsonLength = int.MaxValue;
return jsonResult;

但我对这个解决方案有疑问。如果我们使用这个解决方案,那么我的回复需要更多时间,所以请告诉我这个问题的快速解决方案。

【问题讨论】:

代码应该被格式化。 您可以做的一件事是通过 c# 代码使用 gzip 压缩您的结果。这可以减少时间和结果的大小。 检查this的答案。 谢谢。我试试这个 【参考方案1】:

我已经用 SignalR 解决了这种问题。基本上,1.创建一个 SignalR 集线器 2. 在您的页面 JS 中,连接到集线器并监听响应,从传入流更新您的目标控件 3. 在您的控制器请求中,以数据块的形式获取 connectionid 和流响应。

通过这种方式,您可以发送无限量并立即响应。

【讨论】:

以上是关于在 ASP.NET MVC 中返回最大 Json 结果的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC/Web 控制器中返回 JSON?

如何在asp.net mvc中返回复杂的Json对象

ASP.NET MVC 返回 Json 结果?

如何在 ASP.net MVC4 上的 webgird 中绑定 JSON 返回结果值

如何在 ASP.NET MVC 中以 JSON 格式返回 500 错误?

返回 JSON 或部分 html 的 ASP.NET MVC 控制器操作