【发布时间】:2022-08-17 01:49:13
【问题描述】:
我的页面中有调用 ASP.NET Core 控制器的 AJAX 代码。该代码将对象列表发送到控制器。当列表足够短时,比如 8 个对象,fundFindingsGridRows 参数被正确设置为数据,但是,当列表更长时,此参数为空。
我尝试在我的 Startup.cs 中设置一些东西,但没有任何效果。我可以配置其他一些设置来让它接受更多的数据吗?除了尺寸之外还有其他问题吗?
Startup.cs(相关代码):
services.AddMvc(options =>
{
options.MaxModelBindingCollectionSize = 100000;
});
services.Configure<FormOptions>(options =>
{
options.ValueCountLimit = int.MaxValue;
options.ValueLengthLimit = int.MaxValue;
options.MultipartHeadersLengthLimit = int.MaxValue;
});
services.Configure<IISServerOptions>(options =>
{
options.MaxRequestBodySize = int.MaxValue;
});
Javascript AJAX 代码:
var DATA = new Array();
var grid = $(\"#V3FundFindingsByBuildingGrid\").data(\"kendoGrid\");
var dataTable = grid.dataSource;
$.each(grid.items(), function (index, item) {
var id = $(item).data(\'uid\');
var dataItem = dataTable.getByUid(id);
var building = {};
building.PANumber = dataItem.PANumber,
building.employerNo = dataItem.employerNo,
building.billToEntityNo = dataItem.billToEntityNo,
building.accountNo = dataItem.AccountNo,
building.revisionDateExists = @Model.revisionDateExists.ToString().ToLower(),
building.settlement = false,
building.health = dataItem.Health,
building.pension = dataItem.Pension,
building.annuity = dataItem.Annuity,
building.legal = dataItem.Legal,
building.training = dataItem.Training,
building.joint = dataItem.Joint,
building.four01k = dataItem.Four01k,
building.healthInterest = dataItem.HealthInterest,
building.pensionInterest = dataItem.PensionInterest,
building.annuityInterest = dataItem.AnnuityInterest,
building.legalInterest = dataItem.LegalInterest,
building.trainingInterest = dataItem.TrainingInterest,
building.jointInterest = dataItem.JointInterest,
building.four01kInterest = dataItem.Four01kInterest
DATA.push(building);
});
var fundFindingsGridRows = JSON.stringify(DATA);
$.ajax({
type: \"POST\",
url: \"/PayrollAudit/SaveFundFindings\",
data: fundFindingsGridRows,
contentType: \"application/json; charset=utf-8\",
dataType: \"json\",
success: function (response) {
$(\'#FindingsByBuildingDiv\').html(response);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
控制器动作:
[RequestSizeLimit(100_000_000)]
public IActionResult SaveFundFindings([FromBody]List<FundFindingsGridRow> fundFindingsGridRows)
{...}
标签: javascript asp.net-core asp.net-ajax