我将尝试使用jQuery.parseJSON来解析MVC3控制器操作的返回值。
控制器:
控制器:
[HttpPost]
public JsonResult LogOn(LogOnModel model, string returnUrl)
{
.. do stuff ..
if (errors.Count() < 0)
{
return Json(new object[] { true, model, errors });
}
return Json(new object[] { false, model, errors });
}
jQuery:
$.ajax({
url: form.attr('action'),
type: "POST",
dataType: "json",
data: form.serialize(),
success: function (data) {
var test = jQuery.parseJSON(data);
}
});
Fiddler返回的Json结果:
Content-Type: application/json; charset=utf-8
[false,{"UserName":"1","Password":"2","RememberMe":false},[{"Key":"","Errors":[{"Exception":null,"ErrorMessage":"用户名或密码不正确。"}]}]]
Fiddler可以解析这些结果:
调用jQuery.parseJSON返回null。 我的问题是,如何将json返回值解析成对象?
谢谢!
data
已经是一个对象了。ajax
会尝试解析JSON结果,因为你指定了dataType类型为json。parseJSON期望一个字符串,而你却给了它一个对象,因此返回null。抱歉我没有仔细看清你的问题,我会修改的。 - moribvndvs