1

私は MVC、jquery、および DataTables の初心者です。F5 キーを押してビルドし、開発/デバッグ用にローカルでサイトを起動すると、Microsoft Visual Studio の警告ダイアログが表示されます。

JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'dataTable' をサポートしていません

MVC 4 プロジェクトで VS 2012 を使用しています。ソリューションに NuGet パッケージ マネージャーを使用して、jQuery 1.8.3 と jquery.datatables 1.9.4 をインストール/更新しました。これが私の Index.cshtml ビュー コードです。

<script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript">     </script>
<script src="@Url.Content("~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js")" type="text/javascript"></script>


<script>
 $(document).ready(function () {
     $('#table_id').dataTable({
    });
});
</script>


<table id="table_id" class="display">
<thead>
    <tr>
        <th>Column 1</th>
        <th>Column 2</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Row 1 Data 1</td>
        <td>Row 1 Data 2</td>
    </tr>
    <tr>
        <td>Row 2 Data 1</td>
        <td>Row 2 Data 2</td>
    </tr>
</tbody>
</table>

参照の問題のようですが、私が試したものは何も問題を解決しません!

ブログを検索しましたが、答えが見つからないか、何を変更する必要があるかを理解できません。直接の回答をいただければ幸いです。

ありがとう!

4

3 に答える 3

6

次の行をコメントアウトしてみてください。

@Scripts.Render("~/bundles/jquery")

@RenderSection("スクリプト"、必須: false)

「_Layout.cshtml」ページの最後にあります。

それが理にかなっていることを願っています

于 2013-04-23T14:57:30.683 に答える
4

あなたはMVCなどの初心者(noobという言葉は好きではありません)であると述べているので、複数のビューでjQueryを宣言したと思います(上記のように)。あなたがそれに従うことを望むなら、私はあなたのコードのサンプルレイアウトを提供しています

jQuery およびその他のライブラリは、HTML に 1 回だけ含める必要があります。理想的には、ページの下部、body 終了タグの直前です。

コードの後半で jQuery を再度含めると、dataTable プラグインがアタッチされている前のものが上書きされます。

Visual Studio ではなく、実際のブラウザー (chrome、firefox、IE) で確認することをお勧めします。Chrome では、 を押しF12て開発者ツールを起動し、次に を押しEscてコンソールを起動します。そこにエラーがありますか?


コードのレイアウト例は次のようになります。これはマスター ビューファイルです (私が間違っていなければ、デフォルトでは Views > Shared > _Layout.cshtml にあります)。

<!DOCTYPE html>
<html>
    <head>
        ...

        <!-- Global Styles -->
        <link href="styles.css" rel="stylesheet" type="text/css" />
        <!-- Page Specific Styles -->
        @if (IsSectionDefined("Styles"))
        { 
            @RenderSection("Styles")
        }

        ...
    </head>
    <body>
        ...
        <!-- Global Scripts -->
        <script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"></script>
        <!-- Page Specific Scripts -->
        @if (IsSectionDefined("Scripts"))
        { 
            @RenderSection("Scripts")
        }
    </body>
</html>

そして、次のように、各ビューに必要な特定のスタイル/スクリプトを追加できます

... 
<!-- View HTML -->
...

@section Styles {
       <link href="specific.css" />
}

@section Scripts {
    <script src="specific.js"></script>
}

それが役に立てば幸い

于 2013-01-14T17:04:22.407 に答える
0

わかった、

データテーブルの()の間の{}を削除します

このように書く

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

フィドルの例

データテーブルにオプションを追加する場合は、オプションを使用するために{}を使用します

このような:

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

例を見る

于 2013-01-14T16:32:01.520 に答える