2013-04-06 130 views
0

我似乎无法来解决这个问题...的Json我试图传递到MVC控制器持续走出这样的Json字符串化双引号

"\"{MaterialQuantity: { MaterialID :18, Quantity:1}}\"" 

这是产生它的代码:

function CreateJsonForQuantities() { 
    var inputs = $('input[name=MaterialQuantity]'); 
    var total = inputs.length; 
    var data = ""; 

    inputs.each(function (index) { 
     data = data + $(this).val(); 
     if (index != total -1) 
      data = data + ','; 
    }); 

    return data;   
} 

这是隐藏的,它从读取数据(当然这是自动生成的,以及)

<input name="MaterialQuantity" type="hidden" value="{MaterialQuantity: { MaterialID :12, Quantity:5}}" /> 

什么我做错了吗?

UPDATE

好了,所以现在我得到正确的JSON对象和我的Ajax请求看起来是这样的。现在的问题是,它通过合适的对象,但所有值都在控制器动作:(空

var form_data = CreateJsonForNorm(); 
var quantity_data = CreateJsonForQuantities(); 
var data = { norm: form_data, mqvm: quantity_data }; 
$.ajax({ 
    type: "POST", 
    url: form.attr("action"), 
    data: data, 
    success: function() { 
     location.href = "@Url.Action("Index")"; 
     ('#addDialog').dialog("close"); 
    }, 
    error: function() { 
     alert("Error"); 
    } 
}); 
+0

你在value属性的不是JSON。请访问http ://jsonlint.com/ – Quentin 2013-04-06 11:47:06

+0

Ahhhh ...所以我应该用JSON.parse解析它吗? – rexdefuror 2013-04-06 11:48:43

+0

你不能用JSON.parse解析它,它不是JSON,你应该用JSON序列化器来创建它 – Quentin 2013-04-06 11:49:30

回答

0

尝试在你的请求,利用JSON.stringify(data)

+0

好的,那可能是... – rexdefuror 2013-04-06 17:00:29

+0

这不是:( – rexdefuror 2013-04-07 11:28:12