11

私の共有レイアウトでは、ページ機能に必要なすべてのスクリプトを詰め込むための「スクリプト」セクションが必要です。

Layout.cshtml

<html>
<head>
    <title>Test</title>
    <script src="@Url.Content("~/Scripts/jquery-2.0.3.js")" type="text/javascript"> </script>

    @RenderSection("Scripts", required: false)

</head>
<body>
    @RenderBody()
</body>
</html>

したがって、私のビューは特定の JavaScript をロードします。それを「スクリプト」セクションに入れたいのですが、機能しています。

インデックス.cshtml

@model PlatformaPu.Areas.Inventura.Models.Home.Index

@section Scripts {
    <script src="@Url.Content("~/Areas/Inventura/Scripts/Home/Index.js")" type="text/javascript"></script>
}

{CONTENT REMOVED FOR BREVITY}

@section Footer {
    @Html.Partial("~/Views/Shared/_AppSelector.cshtml", Model.AppSelector)
}

最後に、私のビューはパーシャルをレンダリングし、このパーシャルをロードする JavaScript を持っています。

_AppSelector.cshtml

@model PlatformaPu.Models.Shared._AppSelector

@section Scripts {
    <script src="@Url.Content("~/Scripts/Shared/_AppSelector.js")" type="text/javascript"></script>
}

{CONTENT REMOVED FOR BREVITY}

...そしてこれは機能しません- JavaScript タグは「スクリプト」セクションでレンダリングされません

これどうやってするの?

4

2 に答える 2

15

この質問で説明されているように、部分ビューでセクションを使用することはできません。

セクションは部分ビューでは機能しません。これは仕様によるものです。同様の動作を実現するためにいくつかのカスタム ヘルパーを使用することもできますが、正直なところ、パーシャルの責任ではなく、必要なスクリプトを含めるのはビューの責任です。これを行うには、メイン ビューの @scripts セクションを使用することをお勧めします。パーシャルがスクリプトについて心配する必要はありません。

パーシャルを参照するメイン ビューにスクリプト参照を追加する必要があります。

于 2013-08-12T09:55:35.963 に答える