@section中循环的Javascript导致解析器错误

@section中循环的Javascript导致解析器错误,javascript,asp.net-mvc-4,Javascript,Asp.net Mvc 4,当我在MVC4中的@section内使用JavaScript for循环时,我得到一个解析器错误,应该是大括号}。我看过其他一些关于这方面的帖子(MVC4之前Razor2.0中有一个已知的bug),但似乎没有任何内容能够说明如何做到这一点 我不是JavaScript专家,所以有没有其他方法来声明和调用这个或其他什么 @section onReady{ var oTable; oTable = $('#services').dataTable({ "iDisplayLen

当我在MVC4中的@section内使用JavaScript for循环时,我得到一个解析器错误,应该是大括号}。我看过其他一些关于这方面的帖子(MVC4之前Razor2.0中有一个已知的bug),但似乎没有任何内容能够说明如何做到这一点

我不是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;
            }           
        }
    });
}
@section onReady{
可变的;
oTable=$(“#服务”).dataTable({
“iDisplayLength”:100,
“bJQueryUI”:没错,
“aoColumns”:[
{“bSortable”:false,“bsearcable”:false},
null,null,null,null,null,null,null],
“fnFooterCallback”:函数(nFoot、aData、iStart、iEnd、aiDisplay)
{
var-iCalls=0;
对于(变量i=0;i
不要将节放在脚本标记内。相反,在布局页面中有这样一行:

@RenderSection("scripts", required: false)
然后在视图中:

@section scripts {
<script type="text/javascript">
        var oTable;
        //...
</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>
}
@section onReady{
$(函数(){
可变的;
oTable=$(“#服务”).dataTable({
“iDisplayLength”:100,
“bJQueryUI”:没错,
“aoColumns”:[{
“可移植”:错误,
“可搜索”:错误
},
null,null,null,null,null,null,null],
“fnFooterCallback”:函数(nFoot、aData、iStart、iEnd、aiDisplay){
var-iCalls=0;
对于(变量i=0;i
我猜你的循环中有一次没有设置aData[I][4],这就是破坏它的原因。您可以用if(typeof(aData[i][4])!==“undefined”){…}将其包装起来,以修复它。您也可以通过console.log(aData)来验证aData的内容,并在console中检查它。这很有帮助,但它使屏幕上的其他内容在my DataTables内容中停止工作(其中大部分内容来自web上的其他人,涉及到这些内容),从样式到功能。即使你是对的,我可能需要另一种方法。你肯定想确保你可以限制文档的数量。准备好了。一个是最好的,所以它是集中的,你不会得到任何比赛条件。