我試圖將一些資料從我的 javascript 陣列發送到我的 mvc 控制器。當我通過我的方法結束除錯時public void GetJSArray(List<SelectorModel> selectorModels)
但是selectorModels是null。
這是我的模型。
public class SelectorModel
{
public int ID { get; set; }
public string Cords { get; set; }
public string Name { get; set; }
}
這是我在控制器中的 C# 代碼。
[HttpPost]
public void GetJSArray(List<SelectorModel> selectorModels)
{
//Code here
}
這是我的 JavaScript/Ajax
function SaveInfoSpots() {
var savedeSpots = JSON.stringify({ selectorModels: infospots });
$.ajax({
type: "POST",
url: '/Home/GetJSArray',
contentType: "application/json; charset=utf-8",
dataType: 'JSON',//json
data: savedeSpots,
traditional: true
});
}
如果我做一個console.log(savedeSpots)我得到這個。
{"selectorModels":[{"ID":1,"Name":"Infospot1","Cords":"5000.00, 2293.85, 2278.05"},{"ID":1,"Name":"Infospot2","Cords":"1.94, 584.50, 5000.00"},{"ID":1,"Name":"Infospot3","Cords":"5000.00, -2705.97, -277.02"},{"ID":1,"Name":"Infospot4","Cords":"5000.00, 504.93, -2845.93"}]}
uj5u.com熱心網友回復:
在您的代碼中需要修改兩個地方:
首先,關于模型系結,在動作引數上添加 [FromBody] 屬性:
[HttpPost]
public void GetJSArray([FromBody]List<SelectorModel> selectorModels)
{
//Code here
}
其次,你的 API 需要一個陣列而不是一個物件,所以當你呼叫 API 時,你需要像這樣發布引數:
[
{
"ID": 1,
"Name": "Infospot1",
"Cords": "5000.00, 2293.85, 2278.05"
},
{
"ID": 1,
"Name": "Infospot2",
"Cords": "1.94, 584.50, 5000.00"
},
{
"ID": 1,
"Name": "Infospot3",
"Cords": "5000.00, -2705.97, -277.02"
},
{
"ID": 1,
"Name": "Infospot4",
"Cords": "5000.00, 504.93, -2845.93"
}
]
不是{"selectorModels":...}格式。
如果你只需要 API,創建 webapi 專案比創建 mvc 專案更好。
uj5u.com熱心網友回復:
添加[FromBody]到您的控制器串列引數,例如
public void GetJSArray([FromBody] List<SelectorModel> selectorModels)
嘗試洗掉
traditional: true
和
charset=utf-8
從ajax電話中也是如此。然后應該在控制器中看到填充的串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/434876.html
標籤:javascript C# 阿贾克斯 模型视图控制器
下一篇:使用Jquery向表中添加多個值
