我在强类型Razor View Page中有一个dataTable
。现在根据我的要求,我需要用我的页面模型来填充它,但我不知道怎么做。这是我的dataTable代码。
$(document).ready(function () {
var dt;
var dataSet = [];
dt = $("#Setup").dataTable({
"data": dataSet,
"paging": false,
"responsive": true,
"stateSave": true,
"columns": [
{ "title": "<input type='checkbox' id='selectAll'>", "bSortable": false, "width": "5px", },
{ "title": "", "bSortable": false, "width": "5px" },
{ "title": "Code", "width": "50px" },
{ "title": "Name" }
]
});
});
我的页面是Razor View Page。请帮我完成它。谢谢..
答案 0 :(得分:1)
通常,您应该可以使用剃须刀内嵌您的数据:
@{
StringBuilder sb = new StringBuilder();
foreach(row in model.MyTable)
{
sb.AppendFormat("['{0}', '{1}', '{2}', '{3}'],",
row.Field1, row.Field2, row.Field3, row.Field4);
}
}
$(document).ready(function () {
var dt;
var dataSet = [@Html.Raw(sb.ToString(0, sb.Length - 1))];
dt = $("#Setup").dataTable({
"data": dataSet,
"paging": false,
"responsive": true,
"stateSave": true,
"columns": [
{ "title": "<input type='checkbox' id='selectAll'>", "bSortable": false, "width": "5px", },
{ "title": "", "bSortable": false, "width": "5px" },
{ "title": "Code", "width": "50px" },
{ "title": "Name" }
]
});
});
您应该使用sb.Length - 1
从输出数组中删除最后一个逗号(,
)。使用Html.Raw()
可以防止Razor编码会破坏JavaScript语法的字符串。
答案 1 :(得分:0)
更容易:“数据”:@ Html.Raw(Json.Encode(Model.MyList))-对我来说,它可行。