当我在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;
}
}
});
}
答案 0 :(得分:2)
不要将部分放在脚本标记内。相反,在布局页面中有这样的一行:
@RenderSection("scripts", required: false)
然后在视图中:
@section scripts {
<script type="text/javascript">
var oTable;
//...
</script>
}
答案 1 :(得分: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>
}