如何通过 ajax 将对象数组传递给 asp.net 核心控制器
How to pass array of objects to asp.net core controller via ajax
我正在处理一个复杂的表单,其中包含从不同来源提取数据的不同部分。该表单有复选框、select 选项和输入表单。
表单有动态输入字段。所以我决定获取所有输入字段并序列化,如下面的代码所示。我能够提取所有输入数据。
我尝试了字典和参数类型,但仍然得到空参数。
我在 Whosebug 上尝试了一些建议,但没有一个能够解决问题。
当我将其传递给控制器时,我得到了 null/empty
如何将对象数组传递给控制器?
下面的控制器图片
下面的代码
$(function () {
$("#btn-down-save").on("click", function () {;
var serialised = $('form').serializeArray();
console.log("serialised data", serialised);
$.ajax({
"type": "POST",
"url": "/MerchantFeeSetup/CreateMerchantFee",
"dataType": "json",
"contentType": "application/json",
"data": JSON.stringify(serialised),
success: function (result) { }
})
})
})
控制器
[HttpPost]
public ActionResult CreateMerchantFee([FromBody] List<string> collection)
{
}
试试这个:
创建视图模型
public class NameValue
{
public string Value {get; set;}
public string Name {get; set;}
}
修正ajax
$.ajax({
type: "POST",
url: "/MerchantFeeSetup/CreateMerchantFee",
data: {"collection":serialised},
success: function (result) { }
})
并删除 [FromBody]
[HttpPost]
public ActionResult CreateMerchantFee( List<NameValue> collection)
{
}
我正在处理一个复杂的表单,其中包含从不同来源提取数据的不同部分。该表单有复选框、select 选项和输入表单。
表单有动态输入字段。所以我决定获取所有输入字段并序列化,如下面的代码所示。我能够提取所有输入数据。
我尝试了字典和参数类型,但仍然得到空参数。
我在 Whosebug 上尝试了一些建议,但没有一个能够解决问题。
当我将其传递给控制器时,我得到了 null/empty
如何将对象数组传递给控制器?
下面的控制器图片
下面的代码
$(function () {
$("#btn-down-save").on("click", function () {;
var serialised = $('form').serializeArray();
console.log("serialised data", serialised);
$.ajax({
"type": "POST",
"url": "/MerchantFeeSetup/CreateMerchantFee",
"dataType": "json",
"contentType": "application/json",
"data": JSON.stringify(serialised),
success: function (result) { }
})
})
})
控制器
[HttpPost]
public ActionResult CreateMerchantFee([FromBody] List<string> collection)
{
}
试试这个:
创建视图模型
public class NameValue
{
public string Value {get; set;}
public string Name {get; set;}
}
修正ajax
$.ajax({
type: "POST",
url: "/MerchantFeeSetup/CreateMerchantFee",
data: {"collection":serialised},
success: function (result) { }
})
并删除 [FromBody]
[HttpPost]
public ActionResult CreateMerchantFee( List<NameValue> collection)
{
}