gpt4 book ai didi

asp.net-mvc - 获取 "The JSON request was too large to be deserialized"

转载 作者:行者123 更新时间:2023-12-02 09:06:00 25 4
gpt4 key购买 nike

我收到此错误:

The JSON request was too large to be deserialized.

这是发生这种情况的场景。我有一个国家类别,其中包含该国家/地区的航运港口列表

public class Country
{
public int Id { get; set; }
public string Name { get; set; }
public List<Port> Ports { get; set; }
}

我在客户端使用 KnockoutJS 来制作级联下拉列表。因此,我们有一个包含两个下拉菜单的数组,第一个是国家/地区,第二个是该国家/地区的港口。

到目前为止一切正常,这是我的客户端脚本:

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,
};
} ();

当选择像中国这样拥有很多港口的国家时就会出现问题。因此,如果你的数组中有 3 或 4 次“中国”,我想将其发送到服务器进行保存。出现错误。

我应该采取什么措施来解决这个问题?

最佳答案

您必须调整 maxJsonLengthweb.config 中的属性更改为更高的值以解决问题。

<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"/>
</webServices>
</scripting>
</system.web.extensions>

在 appSettings 中为 aspnet:MaxJsonDeserializerMembers 设置更高的值:

<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>

如果这些选项不起作用,您可以尝试使用 JSON.NET 创建自定义 json 值提供程序工厂,如本 thread 中指定的那样。 .

关于asp.net-mvc - 获取 "The JSON request was too large to be deserialized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com