2015-10-29 25 views
6

コントローラのアクションに投稿されたJSONが大きすぎる場合、リクエストの処理を停止したいと考えています。JSONが大きすぎる場合の処理​​を停止する方法

サイズ制限はので、私はハードコードにしたくない私のweb.configファイル

で、この値は私のコントローラのアクションにチェックする方法はあります異なりますか?私の限界は100kbだと言って、それが終わったら私はサーバーのCPUを無駄にしたくない、私はちょうど停止してすぐに戻りたいと思う。

+0

Iを残念ながら、そうは思わない。問題は、作成されるまでJSON表現の大きさを知る方法がないことです。 –

+0

@ChrisPrattで同意すると、この縮小されたJSONは、人間が読めるものと比較して保存するスペースが少なくなります。 JSONに変換する前に実行を制限することができます。たとえば、アイテムのリストをレンダリングする場合、アイテムの数を制限することができます(ページングなどを使用)。 JSONに変換してブラウザに送信する直前。 – Rolice

答えて

3

JSONクラスでは、このため、このような設定があります(以下のコードを参照してください):

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

また、この(Web.configファイル)のような構成で行うことができます

<configuration> 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="50000000"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 
</configuration> 
関連する問題