2017-07-18 8 views
0

In einer ASP.NET-Core-Anwendung Ich habe eine _Layout.cshtml-Datei, die zwei Abschnitte definiert, die beide in der <head> des Layouts wie folgt aus:Leere Klammern erscheinen, wenn verschachtelte Layouts in ASP.NET mit Core-

<head> 
    @RenderSection("CSS", required: false) 

    @RenderSection("Scripts", required: false) 
</head> 
<body> 
    @RenderBody() 
</body> 

I ist versucht, ein Layout zu erstellen für bestimmte Ansichten wird verschachtelt werden, dass zu verwenden, es besteht aus diesem:

@{ 
    Layout = "_Layout"; 
} 

<h1>@ViewBag.Title</h1> 

@Html.ValidationSummary() 

@BodyContent { 
    @RenderBody() 
} 

@section CSS { 
    @RenderSection("CSS", required: false) 
} 

@section Scripts { 
    @RenderSection("Scripts", required: false) 
} 

und Ansichten benötigen diese ihr Layout dieses Layout-definiert hat, anstatt _Layout zu verwenden. Das Problem ist, dass jede View, die dieses Layout verwendet, {} an das Ende des Inhalts angehängt hat und ich nicht finden kann, woher es kommt. Dies wird unabhängig davon angezeigt, ob die Ansicht einen CSS- und/oder Skriptabschnitt definiert oder nicht, und wurde nicht angezeigt, bevor das neue Layout zwischen dem Hauptlayout und einzelnen Ansichten eingefügt wurde.

Antwort

0

Feste,

@BodyContent { 
    @RenderBody() 
} 

Sollte nur sein:

@BodyContent 
    @RenderBody()