2015-01-09 136 views
2

是否有一個原因,您希望在_Layout.cshtml中將Layout屬性設置爲null?在_Layout.cshtml中將佈局設置爲null

例如,像這樣,在渲染身體視圖之前?

... 
    <section id="content"> 
     @{ Layout = null; } 
     @RenderBody() 
    </section> 
    ... 

似乎很荒謬的我,除去線路設置佈局不改變的方式加載頁面觀測上工作。

是否有任何您爲什麼要在_Layout.cshtml中設置佈局屬性?

+0

是的,通過設置佈局null你刪除部分轉換你的視圖在部分 – Jorge 2015-01-09 21:19:51

+0

@Jorge - 你是說你會在一個部分使用這樣一條線,或者通過使用這樣一條線,它會影響RenderBody中的部分()?在_Layout.cshtml中使用似乎令人困惑。 – 2015-01-09 21:25:22

回答

1

佈局頁面也可以有佈局。在嵌套佈局中,您故意使用佈局屬性來定義佈局頁面的超級佈局。默認情況下,如果您不指定任何內容,則它在佈局頁面中爲空。當你製作@{Layout=null}時,你明確地說這是你的最終佈局,所以它不會嵌套在任何超級佈局中。

3

如果要創建不會從_Layout繼承任何佈局的局部視圖,那麼您將使用@ {Layout = null; }在你的局部視圖的開始。

0

我知道這是一個古老的線程,但我的問題解決了這個伎倆! 我想分享我的解決方案在這裏

  • 首先改變_ViewStart.cshtml到:

    @{ if (Layout != "") { Layout = "~/Views/Shared/_Layout.cshtml"; } }

正如你可以看到Layout是一個屬性,我們會檢查,如果它是不是一種平等到""

  • 接下來,您必須在您的意見

    @{ Layout = ""; }

添加這一點,你就會有快樂的看法,並沒有佈局!