スクリプトタグ内の Razor RenderSection - ビューからテンプレート関数にスクリプトを挿入する方法 質問する

スクリプトタグ内の Razor RenderSection - ビューからテンプレート関数にスクリプトを挿入する方法 質問する

私は Razor ビュー エンジンで MVC 3 を使用しており、複数のビューからのスクリプトを$(document).ready();マスター ページで集中的に定義された 1 つの関数に挿入したいと考えています。

私は次のことを試しました:

<script type="text/javascript">
    $(document).ready(function () {
      //OnLoad Script load area
      '@RenderSection("DocumentReady", false)'
    });
</script>

私のマスタービューでは、次のようになります。

@section DocumentReady{
    alert('Document is ready!');
}

私の見解では、驚くことではありませんが、JavaScript がタグ内にないためにコンパイル エラーが発生します<script>

関数内で初期化スクリプトを実行する必要がある小さなビュー コントロールが多数ある場合は$(document).ready()、それらをすべて 1 か所にまとめて保存しておくと便利です。

<script>周囲のタグなしで、またコンパイルに影響を与えずに、マスター ビューに JavaScript を挿入する方法はありますか?

ベストアンサー1

レイアウト内の RenderSection 呼び出しを単一引用符で囲む必要はありません。

<script type="text/javascript">
    $(document).ready(function () {
        @RenderSection("DocumentReady", false)
    });
</script>

ビュー内では:

@section DocumentReady {
    alert('');
}

ただし、レイアウトにスクリプト セクションがあれば、おそらく読みやすくなります。

@RenderSection("Scripts", false)

ビュー内では:

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

おすすめ記事