Jquery asp mvc3,带有包含json数组的隐藏输入的post表单

Jquery asp mvc3,带有包含json数组的隐藏输入的post表单,jquery,asp.net-mvc-3,knockout.js,Jquery,Asp.net Mvc 3,Knockout.js,我有一张这样的表格: <form id="orderForm"> <input name="Customer" value="Mr.Test" /> <input name="ProductLines" value='[{"Product":{"Name":"Orange","Price":"10"},"amount":"2","total":"20"}, {"Product":{"Name":"Apple","Price":"5"},"amount

我有一张这样的表格:

<form id="orderForm">
    <input name="Customer" value="Mr.Test" />
    <input name="ProductLines" value='[{"Product":{"Name":"Orange","Price":"10"},"amount":"2","total":"20"}, {"Product":{"Name":"Apple","Price":"5"},"amount":"3","total":"15"}]' />
</form>
并在服务器端填充ProductLines集合。(当前它始终为空)


谢谢大家!

发布对象需要在json对象中转换,并使用内容类型json发布。 尝试以下方法可能会有所帮助

var results = {};
$.each($("#orderForm").serializeArray(), function (index, item) {
    results[item.name] = item.value;
});
results.ProductLines = $.parseJSON(results.ProductLines);
$.ajax({
    url: '@Url.Action("Save")',
    type: 'post',
    data: JSON.stringify(results),
    contentType: "application/json; charset=utf-8",
    dataType:'json',
    success: function (data) {
        alert("hi");
    }
});
      $.post('@Url.Action("Save")', $("#orderForm").serialize(), function (data) {//...}, "json");
var results = {};
$.each($("#orderForm").serializeArray(), function (index, item) {
    results[item.name] = item.value;
});
results.ProductLines = $.parseJSON(results.ProductLines);
$.ajax({
    url: '@Url.Action("Save")',
    type: 'post',
    data: JSON.stringify(results),
    contentType: "application/json; charset=utf-8",
    dataType:'json',
    success: function (data) {
        alert("hi");
    }
});