2017-04-07 1 views
0

エラーのスタックトレースは以下のレンダリングセクションのエラーになります。 "Default.cshtml"ページで十字チェックしましたが、レンダリングセクションがまだ選択されていますが、このエラーが発生しています。以下のセクションが定義されていますが、レイアウトページ "〜/ Views/MasterPages/Default.cshtml"のためにレンダリングされていません: "タイトル"

Default.cshtml:

<title>@RenderSection("Title",required: false)</title> 

のStackTrace:

System.Web.WebPages.WebPageBase : VerifyRenderedBodyOrSections The following sections have been defined but have not been rendered for the layout page "~/Views/MasterPages/Default.cshtml": "Title". 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__DisplayClass7.<RenderPageCore>b__6(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) 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) 
     at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) 
     at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) 
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__DisplayClass2a.<BeginInvokeAction>b__20() 
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) 
     at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 
     at System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) 
     at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
     at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 
     at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) 
     at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
     at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 
     at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) 
     at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) 
     at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) 
     at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) 
     at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 
     at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 
     at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) 
     at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 

    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

私が間違っているのどこに私を提案してください。ありがとう。

答えて

0

エラーが特異部分を定義するビューによって引き起こされている、すなわち:

@section Title { ... } 

しかし、セクションが利用されることはありません。これは、このセクションが実装されているので、この特定のビューがDefault.cshtmlレイアウトを利用していないことを意味します。あなたはそれがすべきだと思うレイアウトを利用していない理由を理解する必要があります。ここを探すためにいくつかのことです:

  1. 、あなたが特にビューでレイアウトを設定しない限り、それが使用するレイアウトは、最も近い_ViewStart.cshtmlファイルによって決定されます。 Razorは最初に問題のビューと同じフォルダを探し、そこからViewsディレクトリツリーを上って行きます。そのツリー内のすべての_ViewStart.cshtmlファイルをチェックしてください。

  2. レイアウトの継承を利用している場合は、各レイアウトのセクションを再定義する必要があります。たとえば、次のような何かをした場合:

    Default.cshtml

    @RenderSection("Title", required: false) 
    

    SubLayout.cshtml

    @{ Layout = "~/Views/Shared/Default.cshtml"; } 
    

    View.cshtml

    @{ Layout = "~/Views/Shared/SubLayout.cshtml"; } 
    @section Title { ... } 
    

    SubLayout.cshtmlはそのセクションを実装していないため、このエラーが発生します。それを再定義するには、あなただけSubLayout.cshtmlに以下を追加する必要があります:

    @section Title 
    { 
        RenderSection("Title", required: false) 
    } 
    
+0

私は_viewStart.cshtmlを使用して、すべてのページとセクションタイトルにレイアウトを追加していません。私は、セクションタイトルが部分的に私はレイアウトを使用していないと述べている部分的なビューを発見した。この問題が発生し、この問題が発生する可能性があることを私に示唆してください。 –

関連する問題