3 回答

TA貢獻1735條經驗 獲得超5個贊
data: { gridData: dataArray },
在java腳本中將匹配c#中的以下對象模型
public class GridDataObject {
public List<DateName> gridData { get; set; }
}
但是,這與中的參數參數不匹配
public virtual string Method(List<DateName> gridData)
因此,首先,更新控制器操作以期望從客戶端發送所需的對象模型。
一個簡單的例子在控制器中看起來像這樣
[HttpPost]
public virtual string Method(GridDataObject data) {
//...
var gridData = data.gridData;
//...
return string.Empty; //strictly for demo purposes.
}
其次,客戶端需要使用正確的格式發送數據。
//...
var url = GetUrlRoot() + "Controller/Method";
var data = { gridData: dataArray };
$.ajax({
url: url,
type: 'POST',
data: data,
async: false,
success: function () {
}
error: function () {
},
cache: false,
});

TA貢獻2037條經驗 獲得超6個贊
使用dataType: "json"和traditional: true
$.ajax({
url: GetUrlRoot() + "Controller/Method",
data: dataArray,
async: false,
dataType: "json",
traditional: true,
success: function () {
},
error: function () {
},
cache: false,
})

TA貢獻1860條經驗 獲得超9個贊
在您的 jQuery Ajax 部分:
將設置數據更改為:
data: JSON.stringify(dataArray),
method: 'POST', //or type:'POST' based on jQuery version
...
然后您還可以將控制器更改為:
public virtual string Method([FromBody]DateName[] gridData){
...
}
因此,通過這些更改,$.ajax 會將 JSON 發布到您的控制器,并且您的控制器將從請求正文中解析 JSON。
- 3 回答
- 0 關注
- 222 瀏覽
添加回答
舉報