2017-11-11 121 views
1

我想从我的控制器返回列表到AJAX调用中的成功函数。我能够成功地从控制器返回列表,但在AJAX调用中,错误代码被执行并且出现内部服务器错误。 我到处搜索相同的东西,但我无法找到发生这种情况的原因。返回列表到控制器asp.net的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

你为什么要实例化Hall objHall = new Hall(); ? – Sajeetharan

+0

@Sajeetharan Hall.cs是一个模特班,我从中得到了大厅的名单。 –

+0

尝试实例化它的方法 – Sajeetharan

回答

0

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

using (var contex = new BookingSystemDBEntities()) 
{ 
    context.Configuration.LazyLoadingEnabled = false; 
    hallsList = db.tblHalls.ToList(); 
} 
相关问题