web-dev-qa-db-ja.com

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

RazorビューエンジンでMVC 3を使用しています。ビューから1つの$(document).ready(function(){});にスクリプトを挿入したいと思います。マスターページの機能。

私が試してみました:

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

マスターで、そして:

@section DocumentReady{
   alert('');
}

私の見解では、驚くほどこれは機能しません:(

マスター関数にjsコードを追加する簡単な方法はありますか?ここで本当にシンプルなものが欠けているかもしれません。私のポイントは、$(document).ready(()関数を使用する小さなビューコントロールがたくさんあり、クライアントページにこれらとそれに付随するスクリプトタグが散らばらないようにすることです。

ありがとう。

36
Oliver

レイアウトの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>
}
78
Darin Dimitrov

たとえば、_layout.cshtmlで:

@RenderSection("JavaScript", required: false)

そして、あなたの意見では:

    @section JavaScript
    {
       <script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script>
       <script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")"></script>

       <script type="text/javascript">console.log("in the js");</script>
    }

役立つことを願っています

9
Ema.H