[英]Ajax post doesn't pass any data to MVC controller
這個:
$.ajax({
url: '/Merchant/SaveDirty',
type: 'POST',
dataType: 'json',
data: ko.toJSON(dirtyItems),
contentType: 'application/json; charset=utf-8',
success: function (data) {
// get the result and do some magic with it
//var message = data.Message;
alert(ko.toJSON(dirtyItems));
}
});
...目前稱為:
[HttpPost]
public void SaveDirty(string json)
{
}
...但是當我在SaveDirty中達到斷點時,沒有數據傳遞。 我已驗證ko.toJSON(dirtyItems)在javascript中返回JSON字符串。 我究竟做錯了什么?
謝謝!
@KillingsWorth,發布JSON字符串是否有任何特定原因? 如果不是,則可以創建一個與dirtyitems類型相對應的類,並在您的控制器方法中接受dirtyItems的列表。
Class DirtyItem
{ // dirty item properties }
[HttpPost]
public void SaveDirty(List<DirtyItem> dirtyItems)
{
}
您可以使用以下內容:
$就({
url: '/Merchant/SaveDirty',
type: 'POST',
dataType: 'json',
data: JSON.stringify(dirtyItems),
contentType: 'application/json; charset=utf-8',
success: function (data) {
///
///
}
});
但是,如果您在申請中使用基因敲除.js,則應執行以下操作:
$就({
url: '/Merchant/SaveDirty',
type: 'POST',
dataType: 'json',
data:JSON.stringify(ko.mapping.toJS(dirtyItems)),
contentType: 'application/json; charset=utf-8',
success: function (data) {
// get the result and do some magic with it
//var message = data.Message;
alert(ko.toJSON(dirtyItems));
}
});
這應該工作:
$.ajax({
url: '@Url.Action("SaveDirty", "Merchant")'
type: 'POST',
dataType: 'json',
data: JSON.stringify(dirtyItems),
contentType: 'application/json; charset=utf-8',
success: function (data) {
// get the result and do some magic with it
//var message = data.Message;
alert(ko.toJSON(dirtyItems));
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.