![](/img/trans.png)
[英]I can't send array to .net core mvc Controller with ajax
[英]Ajax .NET Core MVC send JSON Array to Controller using Ajax
我正在尝试通过Columns将表中的数据发送到Controller,但是我尝试了很多方法,参数table
始终是null。 您能否就此提供一些建议? 谢谢
前端代码
var data = {
"Peril": histLossesTable.getDataAtCol(0),
"OccurrenceYear": histLossesTable.getDataAtCol(1),
"Month": histLossesTable.getDataAtCol(2),
"Event": histLossesTable.getDataAtCol(3),
"InsuredLoss": histLossesTable.getDataAtCol(4),
"UnderWriterYear": histLossesTable.getDataAtCol(6),
"ReturnPeriod": histLossesTable.getDataAtCol(5),
"SelectedIndex": histLossesTable.getDataAtCol(7),
"TrendedLoss": histLossesTable.getDataAtCol(8),
"ReportingThreshold": document.getElementById('reportingThreshold').value
};
console.log(JSON.stringify(data));
$.ajax({
type: "POST",
url: "/home/test",
dataType: "json",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function (e) {
if (e.success == true) {
console.log('POST Successful');
}
else {
console.log('POST Failed');
}
}
})
console.log(JSON.stringify(数据))
{"Peril":["BF","BF"],"OccurrenceYear":["2014","2016"],"Month":["1","1"],"Event":["",""],"InsuredLoss":["10020623.440000998","5370632.38"],"UnderWriterYear":["2013","2015"],"ReturnPeriod":[12,12],"SelectedIndex":["1.801998974252194","1.6036056232964842"],"TrendedLoss":["18057153.16024929","8612376.28522618"],"ReportingThreshold":""}
Model
public class HistoricalLossTable
{
public String[] Peril { get; set; }
public int[] OccurrenceYear { get; set; }
public int[] Month { get; set; }
public String [] Event { get; set; }
public double[] InsuredLoss { get; set; }
public int[] UnderWriterYear { get; set; }
public double[] ReturnPeriod { get; set; }
public double[] SelectedIndex { get; set; }
public double[] TrendedLoss { get; set; }
public double ReportingThreshold { get; set; }
}
和 Controller
[HttpPost]
public IActionResult test([FromBody]HistoricalLossTable table)
{
return View();
}
正如 derloopkat 在评论中所说,您不应将数字字段设为字符串。 尝试转换您的有效载荷,如下所示:
{
"Peril":[
"BF",
"BF"
],
"OccurrenceYear":[
2014,
2016
],
"Month":[
1,
1
],
"Event":[
"",
""
],
"InsuredLoss":[
10020623.440000998,
5370632.38
],
"UnderWriterYear":[
2013,
2015
],
"ReturnPeriod":[
12,
12
],
"SelectedIndex":[
1.801998974252194,
1.6036056232964842
],
"TrendedLoss":[
18057153.16024929,
8612376.28522618
]
}
我会建议尝试根据您的 json 输入字符串并添加构造函数来初始化数组(很奇怪但可能是一个问题)。 尝试:
public class HistoricalLossTable
{
public string[] Peril { get; set; }
public string[] OccurrenceYear { get; set; }
public string[] Month { get; set; }
public string[] Event { get; set; }
public string[] InsuredLoss { get; set; }
public string[] UnderWriterYear { get; set; }
public string[] ReturnPeriod { get; set; }
public string[] SelectedIndex { get; set; }
public string[] TrendedLoss { get; set; }
public string ReportingThreshold { get; set; }
public HistoricalLossTable()
{
Peril = new string[2];
OccurrenceYear = new string[2];
Month = new string[2];
Event = new string[2];
InsuredLoss = new string[2];
UnderWriterYear = new string[2];
ReturnPeriod = new string[2];
SelectedIndex = new string[2];
TrendedLoss = new string[2];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.