【发布时间】:2013-12-09 16:15:53
【问题描述】:
我正在尝试发布映射的KnockoutJS 模型。我在调试时可以看到,JSON 是正确的。但服务器显示Product 为0(空)。虽然它确实包含 1 个项目。
MVC Controller:
[HttpPost]
public ActionResult Test(MyModel model, FormCollection fc)
{
return RedirectToAction("index");
}
AJAX 提交:
$('#btnSubmit').click(function (event) {
var theModel = ko.mapping.toJSON(viewModel);
debugger;
$.ajax({
type: 'POST',
url: "@Url.Action("Test", "Home")",
data: theModel,
contentType: 'application/json; charset=utf-8',
success: function (result) {
if (!result.success) {
//alert(result.error);
}
else { }
}
});
});
这是部分JSON 对象:
"Products":[{"Id":2,"Name":"bread"}]
我做错了什么?
编辑:
public class MyModel
{
public int User { get; set; }
public string Address { get; set; }
public string ZipCode { get; set; }
public List<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
【问题讨论】:
-
你能发帖
MyModel吗? -
我们使用 ko.dataFor stackoverflow.com/questions/14968565/…
-
@JoffreyKern,
MyModel已添加 -
我们可以看到您的
Product没有TypeId的概念。它的属性为Id。但是,您发布的JSON包含TypeId -
尝试修复代表
Product的javascirpt模型。将TypeId替换为Id,反之亦然。
标签: javascript asp.net-mvc json asp.net-mvc-4 knockout.js