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");
}
});
Qu'est-ce que vous avez dans l'attribut de valeur est JSON. Voir http : //jsonlint.com/ – Quentin
Ahhhh ... Donc je devrais l'analyser avec JSON.parse? – rexdefuror
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