我似乎无法来解决这个问题...的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");
}
});
你在value属性的不是JSON。请访问http ://jsonlint.com/ – Quentin 2013-04-06 11:47:06
Ahhhh ...所以我应该用JSON.parse解析它吗? – rexdefuror 2013-04-06 11:48:43
你不能用JSON.parse解析它,它不是JSON,你应该用JSON序列化器来创建它 – Quentin 2013-04-06 11:49:30