你有你的包裹中,如「項目」變量JSON數組的提出,是非常重要的變量名匹配。 ASP.NET會自動將JSON反序列化到你的對象中,不需要手動完成。我已經完全測試過這個,經常做,所以我知道它的工作原理。
[HttpPost]
// Note how the argument name is "items"
public ActionResult MyItems(List<Item> items)
{
// set a breakpoint and check the items List
return Content("success")
}
public class Item
{
// Make sure to use public properties get/set
public string Category {get;set;}
}
而JavaScript
function Item()
{
this.Category = ko.observable();
}
function ViewModel()
{
this.Items = ko.observableArray();
this.submit = function() {
// note how we make sure argument name matches "items" as in Controller
var myData = ko.toJSON( { items: this.Items() });
$.ajax({
url: '/Home/MyItems',
contentType: 'application/json',
type: 'POST',
data: myData,
success: function(data){
// check result
}
})
}
}
var vm = new ViewModel();
ko.applyBindings(vm);
var item1 = new Item();
item1.Category("Cat1");
vm.Items.push(item1);
vm.submit();
您的輸入沒有名稱...並且提交JSON是一種全部或全部類型的事情,而不是使用傳統POST/GET的JSON編碼參數。 –
你可以在form form =「post」之後加入...嗎? – Kristof