我尝试将敲除模型发送到Asp.net MVC,但我得到的只是空对象。Fiddler告诉我数据已正确发送。
// model
function ProductModel() {
var self = this;
self.Price = ko.observable();
self.Name = ko.observable("");
self.Description = ko.observable("");
self.Discount = ko.computed(function () {
return self.Price() - ((15 * self.Price()) / 100);
});
}
// viewmodel
function ProductVM() {
var self = this;
self.Product = new ProductModel();
self.Products = ko.observableArray();
self.AddPrd = function () {
self.Products.push(self.Product);
dt.row.add([
$("#ProductName").val(),
$("#Description").val(),
$("#Price").val(),
$("#discount").val()
]).draw();
self.Product = new ProductModel();
}
self.submit = function () {
var Data = JSON.stringify(ko.toJS(self.Products));
console.log(Data);
$.ajax({
url: "/Home/AddMultiProducts",
data: Data,
type: 'POST',
contentType: 'application/json',
dataType: 'json'
});
}
}
C#模型:
public class Product
{
public string Price { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public double Discount { get; set; }
}
C#动作:
[HttpPost]
public ActionResult AddMultiProducts(Product prdlist)
{...}
发送的对象显示在浏览器console.log中:[{“价格”:“ 334”,“名称”:“ fdgdfg”,“描述”:“ fdgdfg”,“折扣”:283.9}]
任何想法都很棒!
尝试以下方法:
self.submit = function () {
var Data = ko.toJS(self.Products)[0];
console.log(JSON.stringify(Data));
$.ajax({
url: "/Home/AddMultiProducts",
data: Data,
type: 'POST',
});
}
您无需将数据字符串化为JSON或使其成为dataType json请求。以上应该张贴到行动就好了。就像注释状态一样,您希望控制器接收单个对象,而不是具有单个条目的数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句