2013-04-06 122 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