C# 如果JSON太大,如何停止处理

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将占用

如果发布到控制器操作的JSON太大,我希望能够停止处理请求

大小限制会有所不同,因此我不想在web.config中硬编码此值


有没有办法签入我的控制器操作?假设我的限制是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>