2

ハイブリッド アプリに requireJS を使用しています。ここで、レイアウト ページにある script タグを url の条件で変更する必要があります。スクリプトタグは次のようになります

<script data-main="@Url.Content("~/Scripts/main")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>

ページが読み込まれると、/Home/Login上記のスクリプト タグが次のように変更されます。

<script data-main="@Url.Content("~/Scripts/login")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>

再びページをロードすると、/Mail/Index上記のスクリプトタグは次のように変更されます

<script data-main="@Url.Content("~/Scripts/mail")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>

ここで、3 つのページすべてが同じページを使用していることに注意して**_Layout.cshtml**ください。また、上記のスクリプト タグは**_Layout.cshtml**ページのみに配置されています。上記のように、このスクリプトを追跡して URL ルーティングの変更時にスクリプト タグを変更するにはどうすればよいでしょうか。

4

1 に答える 1

2

これには単にセクションを使用します。レイアウト ページ:

@RenderSection("RequireScripts")

そして、スクリプトを各ページに配置します。

@section RequireScripts {
    <script data-main="@Url.Content("~/Scripts/main")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>
}

全体を書き直さないようにする方法を探している場合(相対パスのみが必要な場合)、動的Page変数を利用できると思います:

@if (Page.RequireScript != null)
{
    <script src='~/Scripts/@Page.RequireScript'></script>
}

次に、スクリプト ブロックは、 を定義するページに出力を取得しますRequireScript

@{
    Page.RequireScript = "Libs/Requirejs/require.min.js";
}
于 2012-10-20T18:20:55.090 に答える