1

SQLデータベースからのデータを表示するためにtelerikグリッドを使用しています...3500行を超える行を表示すると、次のように返されます。JSONJavaScriptSerializerを使用したシリアル化または逆シリアル化中のエラー。文字列の長さがmaxJsonLengthプロパティで設定された値を超えています。

インターネットやTelerikトラブルシューティングマニュアルのどこでも、その理由はweb.configを編集することだと書いています。それは私を助けません...私は次のようなデータを返そうとしました:

JavaScriptSerializer serializer = new JavaScriptSerializer { MaxJsonLength = 536870912, RecursionLimit = 100 };
return new ContentResult()
{
    Content = serializer.Serialize(data),
    ContentEncoding = Encoding.UTF8
};

データをContentResultとして返すと、フィルタリングと並べ替えが機能しなくなります。

私もこのソリューションを試していました:http://anyrest.wordpress.com/2011/09/27/large-json-result-for-teleriks-mvc-grid/そしてそれは私を助けません...

これが私のコントローラーからのコードです:

[GridAction, POST("GridData")]
public ActionResult _Index()
{
    var data = GetExclusionsDataCollection();
 
    return View(new GridModel { Data = data });
}

ありがとう、デビッド

4

2 に答える 2

1

Telerikサポートに連絡しましたが、問題の理由を共有できます...

Telerikコードライブラリへのリンクがあります。重要な部分は、global.asax.csに行を追加することです。彼らのソリューションのこの部分は、私が見た他のほとんどのソリューションにはありません...

DI.Current.Register<IGridActionResultFactory>(() => new MyCustomGridActionResultFactory());

この行により、ovverideのデフォルトのTelerik機能が発生し、カスタムJsonの結果がアクティブになります...

-デビッド

于 2012-08-06T08:03:05.670 に答える
0

web.configのmaxRequestLengthを増やしてみてください

<system.web>
<httpRuntime requestValidationMode="2.0" maxRequestLength="VALUE" />
</system.web>

ここで、Valueはint.maxvalueまたはint64.maxvalueに設定されます

于 2012-08-02T18:11:42.760 に答える