如何用强类型Razor视图页面填充数据表

本文关键字:填充 数据表 视图 何用 强类型 Razor | 更新日期: 2023-09-27 18:18:52

我在强类型Razor视图页面中有一个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 .Please help me get it done. Thanks.

如何用强类型Razor视图页面填充数据表

一般来说,你应该能够像这样从razor中内联你的数据:

@{
   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语法。

这更容易:"data": @Html.Raw(Json.Encode(Model.MyList)) -对我来说,这是可行的。