2

以下に問題があります。サイトのメイン レイアウトを含むマスターページがあります。次に、マスターページをレイアウトとして使用する特定のビューがありますが、次のような追加のスクリプトを追加します。

_Masterpage.cshtml

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - My ASP.NET MVC Application</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        @RenderSection("head", required: false)
    </head>
    <body>
        <header> ....

_Register.cshtml

@{
    Layout = "_Master.cshtml";
}

@section head
{
    @Scripts.Render("~/bundles/jqueryval");
    @Styles.Render("~/Content/themes/base/css");
}

<div id="body">
    <div data-role="page">
        @RenderBody()
    </div>
</div>

フォーム データを含むビューは _Register.cshtml を使用しますが、RegisterController のインデックスがビューを返すと (以下のように)、_Register.cshtml のスクリプトとスタイルが Head タグのどこにも見つかりません。

public ActionResult Index()
{
    return View();
}

誰でも私を助けてもらえますか?これらのスクリプト/スタイルをヘッドタグで取得するために何が欠けていますか?

ありがとう

4

1 に答える 1

1

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

于 2012-12-17T20:13:03.017 に答える