我想将控制器中的列表返回到AJAX调用中的成功函数。我能够从控制器成功返回列表,但在AJAX调用中,错误代码被执行,我收到内部服务器错误。 我到处搜索相同的内容,但我无法找到原因。
以下是我的AJAX:
$.ajax({
type: "POST",
dataType: 'JSON',
url: "/BookUtility/GetHallsList",
success: function (hallsList) {
console.log(hallsList);
},
error: function (xhr,status, exception) {
console.log("Error: " + exception + ", Status: " + status);
}
});
控制器:
Hall objHall = new Hall();
[HttpPost]
public JsonResult GetHallsList()
{
var hallsList = objHall.GetHallsList();
return Json(hallsList.ToList());
}
Hall.cs
public List<tblHall> GetHallsList()
{
List<tblHall> hallsList;
using (BookingSystemDBEntities db = new BookingSystemDBEntities())
{
hallsList = db.tblHalls.ToList();
}
return hallsList;
}
我也尝试在我的控制器中使用List<tblHall> hallsList = objHall.GetHallsList();
代替var hallsList = objHall.GetHallsList();
,但这也不起作用。
这是我得到的错误: Error I received
我哪里错了?
答案 0 :(得分:0)
正如您的错误所述,问题出在web api方法上。它应该抛出错误。 ObjectContext实例已被释放,不能再用于需要连接的操作。您可以通过设置
来修复它using (var contex = new BookingSystemDBEntities())
{
context.Configuration.LazyLoadingEnabled = false;
hallsList = db.tblHalls.ToList();
}