【发布时间】:2020-12-27 04:48:25
【问题描述】:
我有以下 JavaScript:
var ids = [
"ed4bbe0e-d318-e811-a95f-000d3a11f5ee",
"386c9468-d11b-e811-a95d-000d3a11ec14",
"2913f317-991d-e811-a95d-000d3a11ec14"
];
$.ajax({
method: 'POST',
url: `/Jobs?handler=CreateJobsInQBO`,
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
// contentType: 'application/json',
data: { jobIds: ids }
})
发布到下面的 Razor 页面处理程序
public async Task<JsonResult> OnPostCreateJobsInQBO(IEnumerable<string> jobIds) {
Result<List<Job>> result;
if (jobIds == null || !jobIds.Any()) {
result = "No jobs were submitted.";
} else {
result = await DoStuffAsync(jobIds);
}
return new JsonResult(result);
}
这没有问题。 问题是,当我的 JavaScript 数组很大时,大约有 3000 个项目,传入的处理程序参数值会为 null。我尝试将 ajax contentType 设置为 application/json 并在对象发送之前使用 JSON.stringify ,但它们似乎没有区别。我也尝试在处理函数中的参数上设置 [FormBody],但同样不起作用。
我知道我在这里遗漏了一些简单的东西。我只需要一种将字符串数组发布到大约有 5000 个项目的处理程序方法的方法。最好不要使用 application/x-www-form-urlencoded 内容类型,因为我认为这是导致大型数组无法工作的原因。
【问题讨论】:
标签: javascript ajax asp.net-core razor-pages