ajax JクエリからMVC razorコントローラに無制限のJSONデータを送信する必要があります。 制限付きデータを送信すると、このメソッドがトリガーされます。より多くのデータを送信すると、メソッドがトリガされず、500内部エラーが発生しています。jquery ajaxからmvc razorコントローラへの無制限jsonデータの送信方法
$.ajax({
url: '../Offline/Save',
data: JSON.stringify(Item),
data: "{'Id':" + Results.rows.item(m).Id + ",'Item':" + JSON.stringify(Item) + "}",
type: 'POST',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data, status) {
alert(data);
}
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
[HttpPost]
[ValidateInput(false)]
public JsonResult SaveFinding(int Id, SyncItem Item)
{
Result result = new DB().Process(Id, Item);
return Json(result);
}
はいを見て検討すべきいくつかのリンクです。私はデバッグを試みました。コンテンツが低ければポインタがこのメソッドに移動し、それ以外の場合はレスポンスは返されますが、イベントビューアでこのエラーが発生しました - 例外情報: 例外タイプ:ArgumentException 例外メッセージ:JSON JavaScriptSerializerを使用してシリアル化または直列化解除中にエラーが発生しました。文字列の長さがmaxJsonLengthプロパティで設定された値を超えています。 シリアライザを使用してコントローラからのコントロールをmaxlengthに設定できますが、JQuery ajaxからコントローラにコントロールを設定する方法はありますか。 – muthuvel
いくつかのリンクで私の答えを更新しました – Yasser
web.configにjsonmaxlengthの設定を追加しましたが、それでも動作していなくても次のコードを追加しました var serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue; VAR結果=新しいContentResult {コンテンツ= serializer.Serialize(新しいFindingDB()SynFinding(新しいDB()プロセス(ID、項目))。。)、 たContentType = "アプリケーション/ JSON" }。 return Json(結果); – muthuvel