![](/img/trans.png)
[英]Ajax post to ASP.net MVC controller - object properties are null
[英]AJAX POST Data to MVC Controller in ASP.NET Core Always Null When Passing An Object Array Over a Certain Length
我有一個 javascript 函數,它正在創建一個包含對象數組的模型,並使用 AJAX POST 請求將該數據發送到我的 MVC 控制器。 出於某種原因,似乎可以傳遞給控制器的數組的大小有限制,盡管經過實驗,在我的情況下似乎在 450 到 500 個對象之間。 一旦它大於該閾值,控制器將只收到一個空值。 是否有一些配置或解決方法可以消除或解決此限制?
我已經嘗試了幾個基於 web.config 的“解決方案”,很多人在類似的 SO 問題上提出了這些解決方案,但無濟於事(我認為這些可能僅適用於 .Net Framework 的 ASP.NET 版本,而不適用於 .NET Core) .
Javascript:
var i = 0;
$("#SupplierNumber option").each(function () {
var supplierNumber = {};
supplierNumber.Value = $(this).val();
supplierNumber.text = $(this).val();
supplierNumbers.push(supplierNumber);
//Below limits max size for testing
i = i + 1;
if (i > 450) {
return false;
}
});
//Other non-array values gathered here
var model = {
"SupplierNumbers": supplierNumbers,
//... other non-array values added to model
}
$.ajax({
type: "POST",
url: "/Administration/TestPost",
data: model,
dataType: "json",
success: function (data) {
alert("Finished");
}
});
控制器:
[HttpPost]
public async Task<IActionResult> TestPost(TestViewModel model)
{
//model is null here when array is > 500 in size
return Json(new { success = true });
}
我有一個javascript函數,該函數正在創建一個包含對象數組的模型,並使用AJAX POST請求將該數據發送到我的MVC控制器。 出於某種原因,似乎可以傳遞給控制器的數組的大小受到限制,盡管經過實驗,在我看來,這個大小似乎在450到500個對象之間。 一旦大於該閾值,控制器將只收到一個空值。 是否有一些配置或變通辦法可以消除或解決此限制?
我已經嘗試了許多基於web.config的“解決方案”,很多人都對類似的SO問題提出了建議(我認為這些解決方案僅適用於.NET Framework版本的ASP.NET,不適用於.NET Core)。 。
Javascript:
var i = 0;
$("#SupplierNumber option").each(function () {
var supplierNumber = {};
supplierNumber.Value = $(this).val();
supplierNumber.text = $(this).val();
supplierNumbers.push(supplierNumber);
//Below limits max size for testing
i = i + 1;
if (i > 450) {
return false;
}
});
//Other non-array values gathered here
var model = {
"SupplierNumbers": supplierNumbers,
//... other non-array values added to model
}
$.ajax({
type: "POST",
url: "/Administration/TestPost",
data: model,
dataType: "json",
success: function (data) {
alert("Finished");
}
});
控制器:
[HttpPost]
public async Task<IActionResult> TestPost(TestViewModel model)
{
//model is null here when array is > 500 in size
return Json(new { success = true });
}
我有一個javascript函數,該函數正在創建一個包含對象數組的模型,並使用AJAX POST請求將該數據發送到我的MVC控制器。 出於某種原因,似乎可以傳遞給控制器的數組的大小受到限制,盡管經過實驗,在我看來,這個大小似乎在450到500個對象之間。 一旦大於該閾值,控制器將只收到一個空值。 是否有一些配置或變通辦法可以消除或解決此限制?
我已經嘗試了許多基於web.config的“解決方案”,很多人都對類似的SO問題提出了建議(我認為這些解決方案僅適用於.NET Framework版本的ASP.NET,不適用於.NET Core)。 。
Javascript:
var i = 0;
$("#SupplierNumber option").each(function () {
var supplierNumber = {};
supplierNumber.Value = $(this).val();
supplierNumber.text = $(this).val();
supplierNumbers.push(supplierNumber);
//Below limits max size for testing
i = i + 1;
if (i > 450) {
return false;
}
});
//Other non-array values gathered here
var model = {
"SupplierNumbers": supplierNumbers,
//... other non-array values added to model
}
$.ajax({
type: "POST",
url: "/Administration/TestPost",
data: model,
dataType: "json",
success: function (data) {
alert("Finished");
}
});
控制器:
[HttpPost]
public async Task<IActionResult> TestPost(TestViewModel model)
{
//model is null here when array is > 500 in size
return Json(new { success = true });
}
我有一個javascript函數,該函數正在創建一個包含對象數組的模型,並使用AJAX POST請求將該數據發送到我的MVC控制器。 出於某種原因,似乎可以傳遞給控制器的數組的大小受到限制,盡管經過實驗,在我看來,這個大小似乎在450到500個對象之間。 一旦大於該閾值,控制器將只收到一個空值。 是否有一些配置或變通辦法可以消除或解決此限制?
我已經嘗試了許多基於web.config的“解決方案”,很多人都對類似的SO問題提出了建議(我認為這些解決方案僅適用於.NET Framework版本的ASP.NET,不適用於.NET Core)。 。
Javascript:
var i = 0;
$("#SupplierNumber option").each(function () {
var supplierNumber = {};
supplierNumber.Value = $(this).val();
supplierNumber.text = $(this).val();
supplierNumbers.push(supplierNumber);
//Below limits max size for testing
i = i + 1;
if (i > 450) {
return false;
}
});
//Other non-array values gathered here
var model = {
"SupplierNumbers": supplierNumbers,
//... other non-array values added to model
}
$.ajax({
type: "POST",
url: "/Administration/TestPost",
data: model,
dataType: "json",
success: function (data) {
alert("Finished");
}
});
控制器:
[HttpPost]
public async Task<IActionResult> TestPost(TestViewModel model)
{
//model is null here when array is > 500 in size
return Json(new { success = true });
}
在使用 JSON.stringify 之前試試這個!
我遇到了完全相同的問題。 我需要做的就是以下幾點:
在我的 Startup.cs 中,我在ConfigureServices 中添加了以下幾行:
services.Configure<FormOptions>(options =>
{
options.ValueCountLimit = int.MaxValue;
options.ValueLengthLimit = int.MaxValue;
});
我有一個javascript函數,該函數正在創建一個包含對象數組的模型,並使用AJAX POST請求將該數據發送到我的MVC控制器。 出於某種原因,似乎可以傳遞給控制器的數組的大小受到限制,盡管經過實驗,在我看來,這個大小似乎在450到500個對象之間。 一旦大於該閾值,控制器將只收到一個空值。 是否有一些配置或變通辦法可以消除或解決此限制?
我已經嘗試了許多基於web.config的“解決方案”,很多人都對類似的SO問題提出了建議(我認為這些解決方案僅適用於.NET Framework版本的ASP.NET,不適用於.NET Core)。 。
Javascript:
var i = 0;
$("#SupplierNumber option").each(function () {
var supplierNumber = {};
supplierNumber.Value = $(this).val();
supplierNumber.text = $(this).val();
supplierNumbers.push(supplierNumber);
//Below limits max size for testing
i = i + 1;
if (i > 450) {
return false;
}
});
//Other non-array values gathered here
var model = {
"SupplierNumbers": supplierNumbers,
//... other non-array values added to model
}
$.ajax({
type: "POST",
url: "/Administration/TestPost",
data: model,
dataType: "json",
success: function (data) {
alert("Finished");
}
});
控制器:
[HttpPost]
public async Task<IActionResult> TestPost(TestViewModel model)
{
//model is null here when array is > 500 in size
return Json(new { success = true });
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.