我有一個頂級_Layout.cshtml,看起來是這樣的:在MVC Razor中,如何在子佈局下定義RenderSection?
<html>
<head>
@RenderSection("Header", required: false)
</head>
<body>
@RenderSection("LeftPane", required: false)
@RenderSection("RightPane", required: false)
@RenderBody()
</body>
</html>
然後我有兩個「子佈局。」一個定義了LeftPane部分,另一個定義了一個LeftPane和一個RightPane。這些子佈局稱爲_LeftPane.cshtml和_LeftPlusRightPane.cshtml,它們的佈局設置爲「_Layout.cshtml」。
然後在每個View .cshtml文件中,我將Layout設置爲_LeftPane.cshtml或_LeftPlusRightPane.cshtml,具體取決於我想在頁面上顯示的內容。
這一切工作正常。問題在於我在文檔的<head>
部分添加了新的「標題」部分。本部分未在子佈局中定義,而是在實際視圖中定義。當我嘗試以這種方式查看某些內容時,出現以下錯誤:
以下各節已定義,但尚未針對佈局頁面「〜/ Views/Shared/_LeftPlusRightPane.cshtml」:「標題」進行渲染。
我不想在sublayouts中渲染Header部分,我想在_Layout.cshtml文件中渲染它。我如何從低級視圖中,通過子佈局,直到頂部的_Layout「傳遞」定義的標題部分?
你能粘貼你的部分是什麼樣子?我認爲你只是沒有適當地在各個視圖中包裝各個部分。 – Fourth
我遇到問題的唯一部分是新的標題部分。一個從我的視圖的一個實例:@section部首 { <腳本類型= 「文本/ JavaScript的」 SRC = 「/包括/太極拳-3.0/shadowbox.js」> } –