1. ホーム
  2. asp.net-mvc

[解決済み] レイアウトを使用しているときにビューの中にスクリプトのsrcを追加する方法

2022-09-07 11:33:27

質問

javascriptの参照を含めたいのですが。

<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>

Razor Viewがある場合、レイアウトに追加することなく、これを含めるにはどのような方法がありますか(特定の1つのViewにのみ必要で、すべてではありません)

aspxでは、コンテンツプレースホルダーを使用することができます。 mvcでaspxを使用した古い例を見つけましたが、Razorビューではありませんでした。

どのように解決するのですか?

どのように実装するかにもよりますが、(スクリプトが欲しい場所が決まっているのであれば)、その場所には @section の中に _Layout を追加することで、構造を維持したままビュー自体からスクリプトを追加することが可能になります。

レイアウト

<!DOCTYPE html>
<html>
  <head>
    <title>...</title>
    <script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
    @RenderSection("Scripts",false/*required*/)
  </head>
  <body>
    @RenderBody()
  </body>
</html>

表示

@model MyNamespace.ViewModels.WhateverViewModel
@section Scripts
{
  <script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script>
}

それ以外の場合は、あなたが持っているもので結構です。もし、出力されたビューと "inline"であることを気にしないのであれば、出力されたビューに <script> 宣言をビューの中に置くことができます。