9

Visual Studio 11 を使用してプロジェクト ASP.net 4、MVC4(RC) に取り組んでいます。部分ビューをレンダリングする MVC4 Razor ビューをレンダリングしようとしています。部分ビューに必要な JavaScript がいくつかあります。私の部分的なビューでは、次のようにスクリプト セクション内に JavaScript を含めると、読み込まれないようです。

@section Scripts {
    <script type="text/javascript">
        $(function () {
            alert("test");
        });
    </script>
}

スクリプト セクションを削除すると、jquery ライブラリ (私の _Layout.cshtml ページにバンドルされてレンダリングされている) がまだロードされていないため、ドキュメントの準備が整ったコードが実行されたときに失敗します。

<script type="text/javascript">
    $(function () {
        alert("test");
    });
</script>

jquery ライブラリをロードするための _Layout ページ コード

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

誰かがこれに対する解決策を知っていますか、それとも単に間違った方法で進んでいますか? それは私の頭を破壊します!!

4

3 に答える 3

10

document.ready部分的にスクリプトをラップしないでください:

@section Scripts {
    <script type="text/javascript">
        alert("test");
    </script>
}

ああ、パーシャルにスクリプトを入れないでください。JavaScript コードは、別の JavaScript ファイルに配置する必要があります。パーシャルがロードされたときに何らかの JavaScript を実行したい場合は、パーシャルがロードされた後に呼び出す再利用可能な関数/プラグインにこのスクリプトを外部化するだけです。

于 2012-06-29T07:50:36.287 に答える
4

最後にこれを機能させました。部分ビューから JavaScript を削除し、親ビュー (部分ビューではない) のスクリプト セクションに配置しました。このスクリプト セクションは、スキャフォールディング (作成) を使用してビューを作成するときに自動的に作成され、ページ。これを機能させるには、パーシャルをレンダリングする呼び出しの前に、ページの上部に移動する必要がありました。

于 2012-07-11T05:34:46.437 に答える