1

当我在 MVC 4 的 @section 内使用 JavaScript for 循环时,我收到一个解析器错误,提示需要大括号 }。我看过其他一些关于此的帖子(这是 MVC4 之前的 Razor 2.0 中的一个已知错误),但似乎没有任何内容涉及如何执行此操作。

我不是 JavaScript 专家,那么还有其他方法可以声明和调用它吗?

@section onReady{
var oTable;

    oTable = $('#services').dataTable({
        "iDisplayLength": 100,            
        "bJQueryUI": true,
        "aoColumns": [
     { "bSortable": false, "bSearchable": false },
     null, null, null, null, null, null ],

        "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) 
        {
            var iCalls = 0;
            for ( var i=0 ; i < aData.length ; i++ )
            {
                iCalls += aData[i][4]*1;
            }           
        }
    });
}
4

2 回答 2

2

不要将部分放在脚本标签内。相反,在布局页面中有这样的行:

@RenderSection("scripts", required: false)

然后在视图中:

@section scripts {
<script type="text/javascript">
        var oTable;
        //...
</script>
}
于 2013-06-11T14:04:00.997 回答
1

你需要<script>标签。

@section onReady{

<script type='text/javascript'>

$(function () {
    var oTable;

    oTable = $('#services').dataTable({
        "iDisplayLength": 100,
            "bJQueryUI": true,
            "aoColumns": [{
            "bSortable": false,
            "bSearchable": false
        },
        null, null, null, null, null, null],

            "fnFooterCallback": function (nFoot, aData, iStart, iEnd, aiDisplay) {
            var iCalls = 0;
            for (var i = 0; i < aData.length; i++) {
                iCalls += aData[i][4] * 1;
            }
        }
    });
}); 
</script>
}
于 2013-06-11T14:04:28.207 回答