子行数据表 - 行数据值未定义

Child row datatables - row data value undefined

我有一个数据表,其中的子行由以下函数填充:

$('#myDataTable tbody').on('click', 'td.details-control', function () {
            console.log(table.row(this).data());
            var tr = $(this).closest('tr');
            var row = table.row(tr);

            if (row.child.isShown())
            {
                // This row is already open - close it
                row.child.hide();
                tr.removeClass('shown');
            }
            else {
                // Open this row
                row.child(format(row.data())).show();
                tr.addClass('shown');
            }
        });

格式化函数:

function format(d) {
            // `d` is the original data object for the row
            return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">' +
                '<tr>'+
                '<td><strong>BLABLA1</td>' +
                '<td align="center">'+
                    d.BLABLA1 +
                '</td>'+

                '<td><strong>BLABLA2</td>' +
                '<td align="center">'+
                    d.BLABLA2+
                '</td>'+
            '</tr>' +
            '</table>';
        }

但是,当我显示页面并展开子行时,列的值为 "undefined"...

数据表中的行是从模型(使用 MVC 4)中填充的,如下所示:

<tbody>
        @foreach (var item in Model)
        {

            <tr>

                <td align="center">
                    @Html.DisplayFor(modelItem => item.BLABLA3)
                </td>
    .....</tr>}
    </tbody>

我想我缺少将 row.data() 加载到格式化函数中的方法....正确的方法是什么?我已经检查了所有文档,它们都使用了我尝试过的方法....

显然我必须 select .data() 为每一行返回的 object/array 的索引,以下代码对我有用.....(替换 KNOWN_INDEX 通过子行的整数索引...)

<tr>'+
                '<td><strong>BLABLA1</td>' +
                '<td align="center">'+
                    d[KNOWN_INDEX]+
                '</td>'+
.
.
.
'</tr>'+

是的,页面 https://datatables.net/examples/api/row_details.html 解释我们必须写的很奇怪:

'<td>'+d.myrow+'</td>'+

但是如果我这样做,行的值为 "undefined",所以我必须写:

'<td>'+d["myrow"]+'</td>'+  

成功了!