我在那裏我嘗試後基因敲除模型的控制器動作:淘汰賽視圖模型來空
[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