我在那里我尝试后基因敲除模型的控制器动作:淘汰赛视图模型来空
[HttpPost]
public void AddItems(MyViewModel model)
{
[...]
}
淘汰赛行动:
self.AddItems = function (data, event) {
var url = "/MyController/AddItems";
var target = event.target || event.srcElement;
var model = ko.toJSON(self);
$.post(url,
model,
function (result) {
})
.success(function() { console.log("AddItems second success"); })
.error(function() { console.log("AddItems error"); })
.complete(function() { console.log("AddItems complete"); });
// this doesn't work either
//var model2 = ko.toJSON({ model: self });
//$.ajax(url, {
// data: model,
// type: "post",
// async: false,
// contentType: "application/json",
// success: function (data) {
// console.log("AddItems second success");
// },
// error: function (xmlHttpRequest, textStatus, errorThrown) {
// console.log("AddItems error");
// }
//});
}
我注释掉了另一篇文章我也尝试过这个动作 - 这个动作根本没有达到控制器动作,在js控制台中返回500错误。
型号:
public class MyViewModel
{
public int Id { get; set; }
public string Ref { get; set; }
public List<ItemViewModel> Items { get; set; }
public decimal PriceTotal { get; set; }
}
的模型,它被张贴到行动具有正确的结构,但所有属性是空或空。
如何使用正确的对象数据将挖空视图模型传递给动作?
***** 编辑 *****
我认为动作没有得到JSON模式。
因为当我通过一个手写的原始对象模型:
var model4 = {
"Ref": "sgsgsasg",
"Id": 1,
"PriceTotal": 382
}
它得到很好的行动,并用正确的值。
虽然淘汰赛传递json,然后该动作无法将其转换为mvc模型。
我用这个例子中的http:// WWW .c-sharpcorner.com/UploadFile/5ff76e/posting-data-to-mvc-action-using-knockoutjs /从json反序列化模型并使用'{model:ko.toJSON(self)}'将它传递给动作 – nickornotto