返回JsonResult结果500内部服务器错误
Returning JsonResult results in 500 Internal Server Error
我使用jQuery的getJSON函数从我的控制器返回一个JsonResult
。
$.getJSON("/Test/GetJsonWFA", null, function (data) {
$(data).each(function () {
alert("call succeeded");
//alert(data);
});
});
h2控制器 public JsonResult GetJsonWFA()
{
List<WorkFlowAssignment> listWFAs = new List<WorkFlowAssignment>();
listWFAs.Add(new WorkFlowAssignment()
{
ID = 1,
WorkFlowName = "WorkFlowName1"
});
listWFAs.Add(new WorkFlowAssignment()
{
ID = 2,
WorkFlowName = "WorkFlowName2"
});
return Json(listWFAs, JsonRequestBehavior.AllowGet);
}
500 Internal Server error .
public JsonResult GetJsonWFA()
{
List<WorkFlowAssignment> listWFAs = new List<WorkFlowAssignment>();
listWFAs.Add(new WorkFlowAssignment()
{
ID = 1,
WorkFlowName = "WorkFlowName1"
});
listWFAs.Add(new WorkFlowAssignment()
{
ID = 2,
WorkFlowName = "WorkFlowName2"
});
return Json(listWFAs, JsonRequestBehavior.AllowGet);
}
如果我将GetJsonWFA中的WorkFlowAssignment替换为一个平凡的类,一切都可以工作。
这似乎与列表中对象的类型有关。
WorkFlowAssignment类有许多属性和方法。 谁能给我指个正确的方向?我怀疑你的WorkFlowAssignment
模型有一些不能JSON序列化的循环引用。我建议您使用视图模型,并打破任何可能的循环引用。使用视图模型的另一个优点是,您将只向客户端发送执行处理所需的属性。您不需要通过网络传输一些客户端永远不需要的复杂内容。因此,例如,如果您的客户端需要的一切都是ID
和WorkFlowName
,请这样做:
public ActionResult GetJsonWFA() {
List<WorkFlowAssignment> listWFAs = ...
var viewModel = listWFAs.Select(x => new {
ID = x.ID,
WorkFlowName = x.WorkFlowName
});
return Json(viewModel, JsonRequestBehavior.AllowGet);
}
和客户端:
$.getJSON("/Test/GetJsonWFA", null, function (data) {
$.each(data, function (index, item) {
alert('ID = ' + item.ID + ', WorkFlowName = ' + item.WorkFlowName);
});
});
还应该使用诸如FireBug或Developer Toolbar之类的调试工具来检查浏览器发送的AJAX请求,并分析服务器响应以查找最终的错误。当AJAX请求失败时,作为开发人员的第一反应应该是启动调试工具并查看正在发送的请求/响应。
相关文章:
- SignalR:调用集线器方法时出现内部服务器错误
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- 使用javascript API响应内部服务器错误将曲目上传到SoundCloud
- AJAX错误状态代码500内部服务器错误
- Python在尝试保存新的JSON文件时导致服务器错误
- Jcrop&画布:裁剪区域的大小很奇怪;500内部服务器错误
- 如果JS会话变量为null,如何避免500内部服务器错误
- 如何在getJSON中捕获服务器错误
- POST encodeURI查询字符串内部服务器错误 500
- getJSON:网络错误:500 内部服务器错误
- 如何捕获服务器错误 JS
- Node.js:Mongoose内部服务器错误
- 缺少用于创建的模板.内部服务器错误-聚合物表单保存到数据库
- Jquery AJAX Post:500(内部服务器错误)
- 我的联系表格在测试/PHPMailer后给了我一个内部服务器错误(500)
- 服务器错误消息的正确正则表达式
- 500(内部服务器错误)的外部php文件
- 当显示找不到服务器错误页面时,如何刷新页面/框架
- 如何使用ng-messages在Angularjs中显示服务器错误
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务