如何使用强类型Razor View页面填充dataTable

时间:2015-10-23 07:09:21

标签: c# jquery .net razor datatables

我在强类型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。请帮我完成它。谢谢..

2 个答案:

答案 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))-对我来说,它可行。