C# 将Ajax数据转换为MVC模型

C# 将Ajax数据转换为MVC模型,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我们非常简单的模型: public class OrderSubmissionProductViewModel { public int Id { get; set; } public decimal Price { get; set; } public int Qty { get; set; } } public class OrderSubmissionViewModel { public int CustomerId { get; set; } p

我们非常简单的模型:

public class OrderSubmissionProductViewModel
{
    public int Id { get; set; }
    public decimal Price { get; set; }
    public int Qty { get; set; }
}

public class OrderSubmissionViewModel
{
    public int CustomerId { get; set; }
    public int AccountId { get; set; }

    public OrderSubmissionProductViewModel[] Products { get; set; }
}
AJAX:

$.ajax({
    url: self.urlSubmitOrder,
    data: JSON.stringify({ submission: submission }),
    type: 'POST',
    success: function () { alert("Submitted"); },
    fail: function () { alert("Failed"); }
});
MVC控制器具有以下方法签名:

public ActionResult SubmitAdminOrder(OrderSubmissionViewModel submission)
{ ... }
这是这篇文章的样子:

{"submission":{"CustomerId":43,"AccountId":"20000","Products":[{"Id":4,"Price":100,"Qty":1},{"Id":6,"Price":14,"Qty":1}]}}
我可以在控制器方法中点击一个断点,该模型不是空的,但它的所有属性都是默认值。它没有被正确地绑定。我做错了什么


我们使用的是ASP.Net MVC 4。

请确保
提交
对象不是空的,您可以尝试向ajax选项添加
内容类型

$.ajax({
    url: self.urlSubmitOrder,
    data: JSON.stringify({ submission: submission }),
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    success: function () { alert("Submitted"); },
    fail: function () { alert("Failed"); }
});

或者看看这篇文章

你能发送JSON.stringify({submission})试试吗?我建议你使用webapi angularjs,忘记aspMVCI,我猜是
内容类型
。谢谢。