我有一个MVC4应用程序,我使用jQuery从javascript调用控制器操作。当控制器中发生异常时,返回的响应文本为HTML格式。我希望它是JSON格式。如何实现这一目标?
我认为一些JSON格式化程序应该自己创造魔法......
的JavaScript
// Call server to load web service methods
$.get("/Pws/LoadService/", data, function (result) {
// Do stuff here
}, "json")
.error(function (error) { alert("error: " + JSON.stringify(error)) });
.Net控制器操作
[HttpGet]
public JsonResult LoadService(string serviceEndpoint)
{
// do stuff that throws exception
return Json(serviceModel, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:3)
实际上,您在错误函数中跟踪的错误与请求有关,而与应用程序的错误无关
所以我会在Json结果中传递错误细节,就像那样:
try {
//....
return Json(new {hasError=false, data=serviceModel}, JsonRequestBehavior.AllowGet);
}
catch(Exception e) {
return Json(new {hasError=true, data=e.Message}, JsonRequestBehavior.AllowGet);
}
在客户端,您可以处理类似的事情:
$.get("/Pws/LoadService/", data, function (result) {
var resultData = result.d;
if(resultData.hasError == true) {
//Handle error as you have the error's message in resultData.data
}
else {
//Process with the data in resultData.data
}
}, "json") ...