是否有可能使剃刀部分可選? [c#]


Answers

對於一定的佈局不呈現某一部分,你需要有這樣的東西是你的layout.cshtml

@RenderSection("Somestuff", required:false)
Question

如果我有一個頁面:

<body>
    @section SomeStuff {
        <span>This is a section I just addered</span>
    }

</body>

佈局是否有可能呈現這一部分,或者這與在概念上如何工作是相反的。 似乎能夠不在頁面上呈現某些部分是有用的(除非我正在考慮這個錯誤)。

編輯:

包括錯誤消息可能會有​​所幫助,當我把一個部分放入主頁面時, 佈局頁面將失敗: The following sections have been defined but have not been rendered for the layout page "/Views/Layouts/_Layout1.cshtml": "SomeStuff". 好像它迫使我渲染頁面上的每一部分或其他內容。

換句話說,在Layout.cshtml中,我不會調用@RenderSection,但在Index.html中有一個名為SomeStuff的部分。 這是合法嗎? 似乎它迫使我渲染頁面中的所有部分,但似乎部分應該是可選的,不是?




你可以這樣做:

  @if (condition) {
     @RenderSection("SomeStuff")
  }

或者直接使用conditional statement而不是@RenderSection

 @if (yourCondition) {
    <span>This is a section I just addered</span>
 }