2013-05-08 13 views
8

新しいMVC4インターネットアプリケーションを作成しました。私はちょうど本のASP.NET MVC4 in Actionに従っています。この章は、AjaxがMVCのASP.NETです。 インデックスのビューは、このセクションが定義されていますが、レイアウトページ "〜/ Views/Shared/_Layout.cshtml": "head"のためにレンダリングされていません

@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> 

ようになり、部分図は、いくつかの非常にbasiicマークアップが含まれています。パスindex.cshtmlファイルで指定された私は、このアプリケーションを実行して、手動でhttp://localhost:19208/customajax

Iとしてリンクを与えるとき、私は今、小さなコード

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

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

を持ってAjaxDemo.jsファイルで

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

エラーが発生する

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

は、あなたがあなただけに必要 _Layout.cshtml

headセクションを定義していない

<!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> 

答えて

18

私はそれには何も変わっていない、デフォルトとしてあるのheadセクションでそれを定義しました

<head> 
    @RenderSection("head", required: false) 
</head> 
として _Layout.cshtml

関連する問題