2014-02-23 50 views
1

到目前爲止,我有這個,但它不工作。我收到了一個現有的數據傳輸錯誤,但後來我添加了MARS屬性並將其設置爲true,並且我收到了一個新問題,它說這是一個空引用。我不知道該如何設置數據源,以便填充數據庫中的jqgrid,我使用的是EF。我見過不少例子,但它們對我的情況很有幫助。什麼飼料的數據源爲一個trirand.jqgrid網格與EF

public JsonResult BugJqGridDataRequested() 
    { 

     var bugGrid = new BugJqGridViewModel(); 
     var db = new BugContext(); 
     var bugs = db.Bugs.ToList(); 
     bugGrid.Grid.DataSource = bugs; 
     return bugGrid.Grid.DataBind(); 
    } 

回答

2

基本上是:

[HttpPost] 
public ActionResult BugJqGridDataRequested() 
{ 
    using (var db = new BugContext()) { 
     var bugs = db.Bugs.Select(b => new { Prop1 = b.Prop, Prop2 = b.NavigationProperty.Data }).ToList(); 
     return Json(new { 
      /// The number of pages which should be displayed in the paging controls at the bottom of the grid. 
      Total = 1, 
      /// The current page number which should be highlighted in the paging controls at the bottom of the grid. 
      Page = 1, 
      /// Anything serializable 
      /// UserData = null, 

      //The number of all available bugs not just the number of the returned rows! 
      Records = bugs.Count, 
      Rows = bugs 
     }); 
    } 
} 

附加信息:Using jqGrid with ASP.NET MVC: LINQ Extensions

+0

即時得到這個錯誤'的ObjectContext的實例已設置,並且不能再被用於那些需要connection.'操作 然後我刪除了使用然後錯誤消失現在即時通訊其他錯誤與jqgrid的JS文件做...但你的情況似乎工作 – imGreg

+0

這是因爲錯誤實體有在至少有一個導航屬性和json序列化程序試圖序列化它,但在序列化之前已經放置了DbContext,所以我們需要在構建結果集之前添加一個扁平類型。我編輯了我的答案。 –