1. ホーム
  2. asp.net

[解決済み] [Solved] レイアウトページ "~/Views/Shared/_Layout.cshtml" で、以下のセクションが定義されているが、レンダリングされていない。"スクリプト"

2022-02-18 09:53:52

質問

ASP MVCの初心者で、Intro to ASP MVC 4 Betaのチュートリアルを活用しています。 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4

また、プログラミングの経験もあまりないので、この問題を解決してチュートリアルを進めるために何から手をつければいいのかわかりません。どんなことでもいいので、教えてください。

コントローラからモデルのデータにアクセスする」のセクションで、チュートリアルの一部としてムービーを作成しようとすると、このエラーが表示されます。

次のセクションは定義されていますが、レイアウト ページ >"~/Views/Shared/_Layout.cshtml" のレンダリングは行われていません。"スクリプト"

Visual Studio expressを使用するのではなく、Visual Studio 2012 RCをダウンロードすることを選択しました(それが私の問題の根本原因であるかどうかは分かりませんが)。

この質問に答えるためにコードを含める必要があることは承知していますが、どのようなコードを含めればよいのかさえわかりません。もしあれば、どのようなコードを含める必要があるかアドバイスしてください。

ありがとうございました。

解決するには?

マスターの Layout.cshtml でセクションを定義しているのに、ビューでそのセクションに対応するものが含まれていないことを意味します。

もし、あなたの_Layout.cshtmlがこのような内容であれば。

@RenderSection("scripts")

そして、そのレイアウトを使用するすべてのViewは が必要です。 を含める。 @section という名前のセクションがあります(セクションの内容が空であっても)。

@{
    ViewBag.Title = "Title";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section scripts{
    // Add something here
}

別の方法として を false に設定すると、すべてのビューでセクションを追加する必要がなくなります。

@RenderSection("scripts", required: false)

をラップすることもできます。 @RenderSection を使用します。 if ブロックを作成します。

@if (IsSectionDefined("scripts"))
{
    RenderSection("scripts");
}