无法在 asp.net mvc 4 中将 JSON 对象映射到 JqGrid

Posted

技术标签:

【中文标题】无法在 asp.net mvc 4 中将 JSON 对象映射到 JqGrid【英文标题】:Unable to Map JSON object to JqGrid in asp.net mvc 4 【发布时间】:2018-05-07 04:29:49 【问题描述】:

我有一个嵌套的 JSON 对象,看起来像这样:

所以我的 JqGrid 看起来像这样:

$.post("GetInvoices", 
      v: invoiceno,
      type: invoicetype,
      i: sessioncode
    ,
    function(result) 
      $('#list2').jqGrid(
        datastr: result,
        postdata: 
          v: invoiceno,
          type: invoicetype,
          i: sessioncode
        ,
        mtype: 'POST',
        datatype: 'json',
        colNames: ['BarCode'],
        colModel: [
          name: 'BarCode',
          width: 100,
          jsonmap: "DetailProduct.BarCode"
        ],
        loadonce: true

      );
      jQuery("#list2").jqGrid('navGrid', '#pager2', 
        edit: false,
        add: false,
        del: false
      );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我实际需要的是将此 JSON 对象呈现为我的页面中的网格,但它显示未定义。

【问题讨论】:

【参考方案1】:

您应该将数据类型更改为 jsonstring

    function(result) 
      $('#list2').jqGrid(
        datastr: result,
        mtype: 'POST',
        datatype: 'jsonstring',
        colNames: ['BarCode'],
        colModel: [
          name: 'BarCode',
          width: 100,
          jsonmap: "DetailProduct.BarCode"
        ],
        loadonce: true
      )
...

因为您已经使用 post 函数获得了结果数据。

【讨论】:

以上是关于无法在 asp.net mvc 4 中将 JSON 对象映射到 JqGrid的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET MVC 中将 FormsIdentity 替换为 WindowsIdentity

在ASP.NET MVC中全局应用JSON Serializer设置

在 ASP.net MVC 4 中将类对象从一个控制器动作传递到不同的控制器动作

无法让 ASP.NET MVC 6 控制器返回 JSON

在 ASP.NET MVC 中将 10000 个数据上传到 Devextreme 数据网格时出现问题

如何在 Asp.Net MVC4 Razpr 视图中将操作链接作为图像?