8

新しい MVC4 インターネット アプリケーションを作成しました。ASP.NET MVC4 in Actionという本に従っているだけです。この章は、Ajax is ASP.NET in MVC です。インデックスのビューは次のようになります

@section head{
    <script type ="text/javascript"

            src="@Url.Content("~/Scripts/AjaxDemo.js")"></script>
}

@Html.ActionLink("Show the privacy policy", "PrivacyPolicy", null, new{id="privacyLink"})

<div id="privacy"></div>

部分ビューには非常に基本的なマークアップが含まれています。

<h2>Our Commitment to privacy</h2>
This is sample priavcy policy.

パスがindex.cshtmlファイルで指定されているAjaxDemo.jsファイルには、小さなコードがあります

$(document).ready(function() {
    $('privacyLink').click(function(event) {
        event.preventDefault();

        var url = $(this).attr('href');
        $('#privacy').load(url);
    });
});

このアプリケーションを実行し、手動でリンクを指定するとhttp://localhost:19208/customajax

というエラーが表示されます

The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_Layout.cshtml": "head".

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_Layout.cshtml": "head".

私がここでやっている間違いは何ですか?

はデフォルトの_Layout.cshtmlままで、何も変更していません

<!DOCTYPE html>
<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")

    </head>
    <body>
        <header>
            <div class="content-wrapper">
                <div class="float-left">
                    <p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
                </div>
                <div class="float-right">
                    <section id="login">
                        @Html.Partial("_LoginPartial")
                    </section>
                    <nav>
                        <ul id="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div id="body">
            @RenderSection("featured", required: false)
            <section class="content-wrapper main-content clear-fix">
                @RenderBody()
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; @DateTime.Now.Year - My ASP.NET MVC Application</p>
                </div>
            </div>
        </footer>

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>
4

1 に答える 1

18

headでセクションを定義していません_Layout.cshtml

のheadセクションで定義するだけです_Layout.cshtml

として

<head>
    @RenderSection("head", required: false)
</head>
于 2013-05-08T09:03:22.947 に答える