2014-10-02 59 views
5

我:MVC剃刀@section不理解腳本

  • VS 2013
  • MVC 5.2.2
  • 剃刀3.2.2

讓我知道如果有別的你得知道。

此問題只發生在一個視圖頁上。

我有所有的HTML標籤一個正常顯示

這是你的標準視圖關閉了......

@model MyNameSpace.Models.Inquiry 

@{ 
    var hasFormSetup = Model != null && Model.FormSetup != null && Model.FormSetup.Count > 0; 
    if (hasFormSetup) 
    { 
     ViewBag.Title = Model.FormSetup[0].InquiryValue; 
    } 
    Layout = "~/Views/Shared/_LayoutInquiry.cshtml"; 
} 

<style scoped> 
    ul { 
     list-style-type: none; 
    } 
</style> 

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

    <div class="container" style="margin-top: 5px;"> 
     etc... 
    </div> 
    <div class="container" > 
     etc... 
    </div> 

} 


@section Scripts 
{ 

    <script type="text/javascript"> 

      $(document).ready(function() { 

    etc... 

      }); 


    </script> 
} 

但是......就行

@section Scripts 

Resharper報告:「無法解析節腳本」

當我跑,我得到異常:

Source: System.Web.WebPages 
Target: Void VerifyRenderedBodyOrSections() 
Type: HttpException 
Message: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_LayoutInquiry.cshtml": "Scripts". 
Stack:  at System.Web.WebPages.WebPageBase.VerifyRenderedBodyOrSections() 
    at System.Web.WebPages.WebPageBase.PopContext() 
    at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) 
    at System.Web.WebPages.WebPageBase.<>c__DisplayClass3.<RenderPageCore>b__2(TextWriter writer) 
    at System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) 
    at System.Web.WebPages.WebPageBase.Write(HelperResult result) 
    at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) 
    at System.Web.WebPages.WebPageBase.PopContext() 
    at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) 
    at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) 
    at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) 
    at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) 
    etc... 

沒有其他頁有這個問題。

任何想法如何我可以解決這個問題?

+3

你的'_LayoutInquiry.cshtml'頁面是否有'Scripts'部分?請將該文件添加到您的問題。它應該在內部的適當位置有@RenderSection(「Scripts」,false)'。 (消息說明了一切:以下部分已被定義,但尚未針對佈局頁面「〜/ Views/Shared/_LayoutInquiry.cshtml」:「腳本」進行渲染。) – 2014-10-02 19:58:58

+0

omg。我覺得自己就是這樣一個doofus。請添加此作爲答案,我會給你的觀點...你知道這會發生什麼嗎?無需任何數據源即可將整個機構複製 - 因此,您的默認錯誤頁面顯示在網頁的底部。 – 2014-10-02 20:11:55

回答

14

異常消息說:

以下路段已確定,但尚未呈現的頁面佈局「〜/查看/共享/ _LayoutInquiry.cshtml」:「腳本」。

這表明您的_LayoutInquiry.cshtml頁面沒有爲Scripts部分設置佔位符。您可以通過將@RenderSection("Scripts", false)添加到適當位置的佈局頁面來執行此操作,其中false表示視圖可以選擇提供此部分。

現在,當您的視圖呈現時,您視圖中的@section Scripts { ... }的內容將在佈局頁面中呈現爲調用@RenderSection("Scripts", false)的位置。