MVC 4 Razor对象不支持属性或方法’dataTable’

我是MVC,jquery和DataTables的菜鸟。 当我点击F5构建并在本地启动站点进行开发/调试时,我得到一个Microsoft Visual Studio警告对话框:

JavaScript运行时错误:对象不支持属性或方法’dataTable’

我正在使用VS 2012和MVC 4项目。 我使用NuGet包管理器为我的解决方案安装\ update jQuery 1.8.3和jquery.datatables 1.9.4。 这是我的Index.cshtml视图代码:

    $(document).ready(function () { $('#table_id').dataTable({ }); });  
Column 1 Column 2
Row 1 Data 1 Row 1 Data 2
Row 2 Data 1 Row 2 Data 2

这似乎是一个引用问题,但我没有尝试解决问题!

我搜索了博客,但无法找到答案,或者可能了解需要改变的内容。 我们将非常感谢您的直接答复!

谢谢!

我想你可能会尝试评论这些内容:

@ Scripts.Render( “〜/捆绑/ jquery的”)

@RenderSection(“scripts”,必需:false)

它们位于“_Layout.cshtml”页面的末尾。

希望它有意义

既然你在MVC中提到你是一个新手(我不喜欢noob这个词),我认为你在多个视图中声明了jQuery(就像你上面所做的那样)。 我正在为您的代码提供示例布局,如果您希望遵循它

jQuery和任何其他库,只应该只包含在你的html中一次,理想情况是在页面底部,就在正文结束标记之前

如果在代码的后面,你再次包含jQuery,那么它将覆盖前一个,其中附有dataTable插件

最好在实际的浏览器(chrome,firefox,IE)中检查而不是Visual Studio。 在Chrome中,按F12打开开发人员工具,然后按Esc打开控制台。 看到那里有任何错误?


代码的示例布局可能如下所示。 这是主视图文件(如果我没有记错,默认情况下它在Views> Shared> _Layout.cshtml中)

    ...    @if (IsSectionDefined("Styles")) { @RenderSection("Styles") } ...   ...    @if (IsSectionDefined("Scripts")) { @RenderSection("Scripts") }   

您可以为每个视图添加任何特定样式/脚本,如此

 ...  ... @section Styles {  } @section Scripts {  } 

希望能帮助到你

好,

删除数据表的()之间的{}

像这样写

  $(document).ready(function () { $('#table_id').dataTable(); }); 

小提琴的例子

如果要向数据表添加选项,请使用{}以使用选项

像这样:

 $(document).ready(function() { $('#example').dataTable( { "bPaginate": false, "bLengthChange": false, "bFilter": true, "bSort": false, "bInfo": false, "bAutoWidth": false } ); } ); 

见例子