Table 未从变量中的 json 数据填充
Table not populated from json data in variable
我在 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 属性,table 将按预期填充。但是,如果我使用数据 属性 和 @Model.DataAsJson 那么我的 table 中有 千个空行,每列中有一个 '-' .
我看到了对 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
},
谁能看出为什么会这样?
好的,深入了解一下,以防其他人被它抓住。
我修改了js读取模型数据如下:
$('#table').bootstrapTable({
data: @Html.Raw(Model.DataAsJson)
所以我删除了撇号并添加了 Html.Raw。我通过查看 Chrome 调试器中的数据意识到了这一点,并且可以看到它已被编码。此外,我还遇到了一些其他问题,因为我正在使用的遗留代码库在部分视图中包含脚本,并且 Chrome 调试器没有达到调试点。我通过添加对此进行了排序:
debugger;
我想让它断的地方。
谢谢,希望这对其他人有帮助。
我在 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 属性,table 将按预期填充。但是,如果我使用数据 属性 和 @Model.DataAsJson 那么我的 table 中有 千个空行,每列中有一个 '-' .
我看到了对 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
},
谁能看出为什么会这样?
好的,深入了解一下,以防其他人被它抓住。
我修改了js读取模型数据如下:
$('#table').bootstrapTable({
data: @Html.Raw(Model.DataAsJson)
所以我删除了撇号并添加了 Html.Raw。我通过查看 Chrome 调试器中的数据意识到了这一点,并且可以看到它已被编码。此外,我还遇到了一些其他问题,因为我正在使用的遗留代码库在部分视图中包含脚本,并且 Chrome 调试器没有达到调试点。我通过添加对此进行了排序:
debugger;
我想让它断的地方。
谢谢,希望这对其他人有帮助。