这:
$.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字符串。我做错了什么?
谢谢!
答案 0 :(得分:1)
@KillingsWorth,您是否有任何特定原因要发布JSON字符串?如果没有,那么你可以创建一个与dirtyitems类型相对应的类,在你的控制器方法中你可以接受一个dirtyItems列表。
Class DirtyItem
{ // dirty item properties }
[HttpPost]
public void SaveDirty(List<DirtyItem> dirtyItems)
{
}
答案 1 :(得分:1)
您可以使用以下内容:
$。AJAX({
url: '/Merchant/SaveDirty',
type: 'POST',
dataType: 'json',
data: JSON.stringify(dirtyItems),
contentType: 'application/json; charset=utf-8',
success: function (data) {
///
///
}
});
但是如果您在应用程序中使用knockout.js,那么您应该执行以下操作:
$。AJAX({
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));
}
});
答案 2 :(得分:0)
这应该有效:
$.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));
}
});