从控制器asp.net返回到ajax调用的列表

时间:2017-11-11 16:33:33

标签: c# asp.net ajax

我想将控制器中的列表返回到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

我哪里错了?

1 个答案:

答案 0 :(得分:0)

正如您的错误所述,问题出在web api方法上。它应该抛出错误。 ObjectContext实例已被释放,不能再用于需要连接的操作。您可以通过设置

来修复它
using (var contex = new BookingSystemDBEntities())
{
   context.Configuration.LazyLoadingEnabled = false;
   hallsList = db.tblHalls.ToList();
}