2013-04-06 5 views
0

Je ne peux pas sembler contourner ce problème ... Json Je suis en train de passer à un contrôleur MVC revient sans cesse comme çaguillemets doubles stringify Json

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

Ceci est le code qui le génère :

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;   
} 

Et c'est le caché dont il lit les données de (bien sûr cela est généré automatiquement, ainsi)

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

Qu'est-ce que d'un Je fais mal?

MISE À JOUR

Ok maintenant je reçois correctement l'objet JSON et mes demandes ajax ressemble à ceci. Le problème est maintenant qu'il fait passer des objets appropriés mais toutes les valeurs sont nulles dans l'action du contrôleur :(

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

Qu'est-ce que vous avez dans l'attribut de valeur est JSON. Voir http : //jsonlint.com/ – Quentin

+0

Ahhhh ... Donc je devrais l'analyser avec JSON.parse? – rexdefuror

+0

Vous ne pouvez pas l'analyser avec JSON.parse Ce n'est pas JSON Vous devriez le créer avec un sérialiseur JSON – Quentin

Répondre

0

Essayez d'utiliser JSON.stringify(data) dans votre demande

+0

Ok, ça pourrait être ça ... – rexdefuror

+0

Ce n'était pas ça :( – rexdefuror

Questions connexes