簡體   English   中英

隱藏Orchard CMS中的區域

[英]Hide zones in Orchard CMS

我正在尋找一種在Orchard CMS中的1個特定頁面上隱藏某些區域的方法,我正在使用1.6.1版。

我遇到問題的一些背景-網站上的每個頁面都有Layout.cshtml文件中定義的頁眉和頁腳。 對於網站上的1頁,我想隱藏由6個區域組成的頁眉和頁腳。 在MVC中,我會添加另一個布局文件並使用嵌套的布局,但是我知道在Orchard中無法做到這一點。

我有一個可以完成任務的解決方案,但是我並不熱衷Layout.cshtml ,因為它涉及將代碼放入Layout.cshtml文件中,我的解決方案如下

if (Request.Url.PathAndQuery.Contains("register-1"))
{
    Model.Header1 = null;
    Model.Header2 = null;
    Model.Header3 = null;
    Model.Header4 = null;
    Model.Footer1 = null;
    Model.Footer2 = null;
}

再加上像這樣在輸出區域之前進行空檢查

@if (Model.Header1 != null)
{
    <div id="layout-banner">
        @Zone(Model.Header1)
    </div>
}

有沒有一種方法而不必將代碼放入Layout.cshtml文件中? 還是總有一種更好的方法?

使用一層隱藏小部件,該小部件使用not url("~/register-1")排除頁面。 放置在此層中的小部件將不會出現在您的register-1頁面上。

您可以為頁面創建替代布局。 如果只有一頁,則使用url替代是合適的。

  1. 復制Layout.cshtml(從當前主題文件夾)
  2. 重命名為Layout-url-your-page-url.cshtml
  3. 另外,您應該激活網址替代模塊

有關更多的失敗,請查看http://docs.orchardproject.net/Documentation/Alternates

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM