【问题标题】:AsQueryable() returns NullReference Exception not handled by the User "Object reference not set to an instance of object"AsQueryable() 返回用户未处理的 NullReference 异常“对象引用未设置为对象实例”
【发布时间】:2013-03-08 10:45:15
【问题描述】:

我是 ASP.Net MVC 4.0 的新手,我正在尝试使用 Trirand 的 JQGrid 从数据库中填充数据。当我尝试将数据绑定到 JQGrid 时出现上述错误。

错误在下面一行

 return gridModel.MarketPriceAnalysisGrid.DataBind(oMarketPriceAnalysisModel.AsQueryable<MarketPriceAnalysisModel>());

代码如下:

 // This method is called when the grid requests data
    public JsonResult SearchGridDataRequested()
    {
        // Get both the grid Model and the data Model          
        var gridModel = new MarketPriceAnalysisJQGridModel();


        // customize the default Orders grid model with our custom settings
        SetUpMarketPriceAnalysisGrid(gridModel.MarketPriceAnalysisGrid);


        var oMarketPriceAnalysisModel = MarketPriceAnalysisRepository.GetListOfSAPSPTComponents();                           

        // return the result of the DataBind method, passing the datasource as a parameter
        // jqGrid for ASP.NET MVC automatically takes care of paging, sorting, filtering/searching, etc
         return gridModel.MarketPriceAnalysisGrid.DataBind(oMarketPriceAnalysisModel.AsQueryable<MarketPriceAnalysisModel>());
    }

GetListofSAPSPTComponents 方法返回一个 IEnumerable

 IEnumerable<MarketPriceAnalysisModel> GetListOfSAPSPTComponents();

我刚刚发现错误源是 Trirand.Web.MVC 并且堆栈跟踪显示

`at Trirand.Web.Mvc.Util.PrepareJsonResponse(JsonResponse response, JQGrid grid,   DataTable dt)
  at Trirand.Web.Mvc.Util.ConvertToJson(JsonResponse response, JQGrid grid, DataTable   dt)
  at Trirand.Web.Mvc.JQGrid.FilterDataSource(Object dataSource, NameValueCollection queryString, IQueryable& iqueryable)
  at Trirand.Web.Mvc.JQGrid.GetJsonResponse()
  at Trirand.Web.Mvc.JQGrid.DataBind()
  at Trirand.Web.Mvc.JQGrid.DataBind(Object dataSource)
  at MedPackMVC.Controllers.MarketPriceAnalysisController.SearchGridDataRequested() in      c:\Work\04_Dev\MedPackMVCApplication\MedPackMVC\Controllers\MarketPriceAnalysisController.cs:line 95

`

不确定这可能是什么原因? 谢谢

【问题讨论】:

  • 最终,MarketPriceAnalysisRepository.GetListOfSAPSPTComponents() 返回 null。你检查了吗?
  • @Dima - 不,它从数据库返回数据。
  • 我发现了这个问题。 JQGrid 的数据字段名称未正确映射到数据库列名称。
  • 感谢@siv,我遇到了同样的问题,您的上述评论帮助我确定了我使用的列别名之一与 JQGridColumn.DataField 不匹配。请将此作为答案发布,因为它可能对其他人有所帮助。

标签: asp.net-mvc mvcjqgrid


【解决方案1】:

当您的 MarketPriceAnalysisModel 具有分配给 jqGrid 的字段而不是属性时,也会出现此错误。

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    相关资源
    最近更新 更多