Ricevo questo errore:
La richiesta JSON era troppo grande per essere deserializzata.
Ecco uno scenario in cui ciò si verifica. Ho una classe di paese che detiene un elenco di porti di spedizione di quel paese
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
public List<Port> Ports { get; set; }
}
Uso KnockoutJS sul lato client per effettuare una discesa a cascata. Quindi abbiamo una serie di due menu a discesa, in cui il primo è il paese e il secondo sono i porti di quel paese.
Finora tutto funziona bene, questo mio script lato client:
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,
};
} ();
Il problema si verifica quando viene selezionato un paese come la Cina, che ha molti porti. Quindi, se hai 3 o 4 volte "China" nel tuo array e voglio inviarlo al server per salvarlo. L'errore si è verificato.
Cosa devo fare per porre rimedio a questo?