I'm trying to do a post of the mapped KnockoutJS
model. I can see when debugging it, the JSON
is correct. But the server shows that Product
is 0 (empty). While it does contain 1 item.
MVC Controller
:
[HttpPost]
public ActionResult Test(MyModel model, FormCollection fc)
{
return RedirectToAction("index");
}
The AJAX
submit:
$('#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 { }
}
});
});
This is a partial JSON
object:
"Products":[{"Id":2,"Name":"bread"}]
What am I doing wrong?
EDIT:
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; }
}