0

我有一个控制器,它返回一个json在我的视图中填充网格的控制器。根据过滤器,用户可以在一次调用中检索大量数据,因此我将 MaxJsonLength 设置为max

var jsonResult = Json(result, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;

我的问题是,始终将其设置MaxJsonLength 为最大值是否安全?它的缺点是什么?(如果有的话)

我找到了这个相关的帖子,但它没有回答我的问题。

MaxJSONlength 有什么用?

我需要你的专业知识。提前致谢!

4

1 回答 1

2

我认为MaxValue在每次通话时都设置它不是一个好主意。这并不意味着它会破坏您的应用程序,但它可能会使您的应用程序看起来损坏。
我曾经遇到过同样的问题——在某些情况下,用户可能要求更大的数据集。像 10-50 MB 一样大,通过互联网连接,而不是 LAN。没有什么不可能的,你可以发送这样的数据集。但是您的应用程序将非常缓慢。浏览器将等待数据,用户将等待很长时间页面才能使用,这反过来又导致他们做一些愚蠢的事情,比如到处点击,诅咒和报告应用程序中的错误。真的是bug吗?取决于你的要求,但我会说是的。

您可以而且应该做的是提供分页。向用户发送少量数据,立即显示它们,允许用户使用它们,然后根据需要发送额外的数据。或者,如果总是需要它 - 在后台以包的形式自动发送它,但在较小的集合中,这将很快显示出来。用户将快速准备好他们的页面,并且大多数时候他们不会注意到并非所有数据都已经存在 - 当他们需要它时,它已经被下载了。
有了今天对AJAX,jQuery和类似的东西的支持,这样做应该不会比一次获取和显示整个数据集更困难。

于 2013-05-29T07:10:16.453 回答