tôi nhận được lỗi này:Bắt "Yêu cầu JSON là quá lớn để được deserialized"
The JSON request was too large to be deserialized.
Dưới đây là một kịch bản mà điều này xảy ra. Tôi có một nhóm quốc gia có danh sách các cảng vận chuyển của quốc gia đó
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
public List<Port> Ports { get; set; }
}
Tôi sử dụng KnockoutJS ở phía máy khách để tạo danh sách thả xuống xếp tầng. Vì vậy, chúng tôi có một mảng của hai thả xuống, nơi đầu tiên là quốc gia, và thứ hai là cảng của quốc gia đó.
Tất cả mọi thứ đang làm việc tốt cho đến nay, bên này kịch bản khách hàng của tôi:
var k1 = k1 || {};
$(document).ready(function() {
k1.MarketInfoItem = function (removeable) {
var self = this;
self.CountryOfLoadingId = ko.observable();
self.PortOfLoadingId = ko.observable();
self.CountryOfDestinationId = ko.observable();
self.PortOfDestinationId = ko.observable();
};
k1.viewModel = function() {
var marketInfoItems = ko.observableArray([]),
countries = ko.observableArray([]),
saveMarketInfo = function() {
var jsonData = ko.toJSON(marketInfoItems);
$.ajax({
url: 'SaveMarketInfos',
type: "POST",
data: jsonData,
datatype: "json",
contentType: "application/json charset=utf-8",
success: function (data) {
if (data) {
window.location.href = "Fin";
} else {
alert("Can not save your market information now!");
}
},
error: function (data) { alert("Can not save your contacts now!"); }
});
},
loadData = function() {
$.getJSON('../api/ListService/GetCountriesWithPorts', function (data) {
countries(data);
});
};
return {
MarketInfoItems: marketInfoItems,
Countries: countries,
LoadData: loadData,
SaveMarketInfo: saveMarketInfo,
};
}();
Vấn đề xảy ra khi một quốc gia như Trung Quốc được chọn, trong đó có rất nhiều của cảng. Vì vậy, nếu bạn có 3 hoặc 4 lần "Trung Quốc" trong mảng của bạn và tôi muốn gửi nó đến máy chủ để lưu. Lỗi xảy ra.
Tôi nên làm gì để khắc phục điều này?
Đối với bất kỳ ai thắc mắc tại sao điều này xảy ra hoặc viết bộ nối tiếp khách hàng của họ - hãy xem [mã nguồn của JsonValueProviderFactory.cs] (https://github.com/mono/aspnetwebstack/blob/master/src/System.Web. Mvc/JsonValueProviderFactory.cs # L118) - có vẻ như đội ASP.NET MVC cố tình đặt giới hạn ở 1000. – kape123