表中没有从变量中的json数据填充

时间:2017-11-15 15:33:34

标签: json bootstrap-table

我在MVC应用程序中使用BoostrapTable。控制器返回一些数据如下:

model.DataAsJson = JsonConvert.SerializeObject(model.Entities.Select(x => x.DataProperties));

我的客户端看起来像这样(摘录):

<table id="table"></table>

<script type="text/javascript">
$('#table').bootstrapTable({
    data: '@Model.DataAsJson',
    //url: 'ms.json', 
    columns: [{
        field: 'ClientFileNo',
        title: 'Case No'
    }, {
        field: 'ClientName',
        title: 'Customer Name'
    }]
});

结果Json看起来像这样:

[{
    "RowNum": "2",
    "ID": "XXX",
    "ClientFileNo": "XXX",
    "Description": "XXX",
    "ClientName": "XXX",
    "TypeDescription": "XXX",
    "PrincipleName": "XXX",
    "Created": "2017-11-08T10:31:23.673Z"
  },
  {
    "RowNum": "3",
    "ID": "XXX",
    "ClientFileNo": "XXX",
    "Description": "XXX",
    "ClientName": "XXX",
    "TypeDescription": "XXX",
    "PrincipleName": "XXX",
    "Created": "2017-11-01T12:29:08.763Z"
  }
]

如果我将SerializeObject()调用的结果粘贴到json文件中并传递给url属性,则表格将按预期填充。但是,如果我使用data属性和@ Model.DataAsJson,那么我的表中有数千个空行,其中包含&#39; - &#39;在每一栏

我看过对responseHandler属性的引用,我尝试过为我的JSON数组提供一个名称,但是它没有解决我的问题:

model.DataAsJson = JsonConvert.SerializeObject(new
        {
            jsonData = model.Entities.Select(x => x.DataProperties)
        });

<script type="text/javascript">
$('#table').bootstrapTable({
    data: '@Model.DataAsJson',
    responseHandler: function (res) {
        res.jsonData
    },

有人能看出为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

如果有其他人被它抓住,那么就到底了。

我修改了js以读取模型数据如下:

$('#table').bootstrapTable({
data: @Html.Raw(Model.DataAsJson)

所以我删除了撇号并添加了Html.Raw。我通过在Chrome调试器中查看数据来实现这一点,并且可以看到它已被编码。此外,由于我正在使用的遗留代码库在部分视图中使用了脚本并且Chrome调试器没有达到调试点,因此我遇到了一些问题。我通过添加:

对此进行了排序
debugger;

我想让它破裂。

谢谢,希望这有助于其他人。