C# 如果JSON太大,如何停止处理
如果发布到控制器操作的JSON太大,我希望能够停止处理请求 大小限制会有所不同,因此我不想在web.config中硬编码此值C# 如果JSON太大,如何停止处理,c#,asp.net,json,asp.net-mvc,C#,Asp.net,Json,Asp.net Mvc,如果发布到控制器操作的JSON太大,我希望能够停止处理请求 大小限制会有所不同,因此我不想在web.config中硬编码此值 有没有办法签入我的控制器操作?假设我的限制是100kb,如果超过了,我不想浪费服务器的CPU,我只想立即停止并返回。Json类中有这样的设置(请参阅下面的代码): 也可以在如下配置中完成(Web.config): 不幸的是,我不这么认为。问题是,在创建JSON表示之前,无法知道它需要多大。同意@ChrisPratt,与人类可读的JSON表示相比,这种简化的JSON将占用
有没有办法签入我的控制器操作?假设我的限制是100kb,如果超过了,我不想浪费服务器的CPU,我只想立即停止并返回。Json类中有这样的设置(请参阅下面的代码): 也可以在如下配置中完成(Web.config):
不幸的是,我不这么认为。问题是,在创建JSON表示之前,无法知道它需要多大。同意@ChrisPratt,与人类可读的JSON表示相比,这种简化的JSON将占用更少的存储空间。您可能希望在将其转换为JSON之前限制执行。例如,如果呈现项目列表,可能需要限制项目的数量(使用分页等方式)。在转换为JSON并将其发送到浏览器之前。
var jsonResult = Json(jsonString, JsonRequestBehavior.AllowGet);
jsonResult.maxJsonLength = int.MaxValue;
return jsonResult;
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>