我正在寻找一种方法来隐藏Orchard CMS中1个特定页面上的某些区域,我使用的是1.6.1版本。
我的问题的一些背景 - 网站上的每个页面都有Layout.cshtml
文件中定义的页眉和页脚。对于网站上的1页我想隐藏由6个区域组成的页眉和页脚。在MVC中,我会添加另一个布局文件并使用嵌套布局,但我知道这不能在Orchard中完成。
我有一个完成这项工作的解决方案,但我并不热衷于此,因为它涉及将代码放入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
文件的情况下执行此操作?或者也许有更好的方法在一起?
答案 0 :(得分:2)
使用图层隐藏小部件,使用not url("~/register-1")
排除页面。放置在此图层中的小部件不会显示在您的register-1页面上。
答案 1 :(得分:1)
您可以为页面创建替代布局。如果只有一个页面,则url alternate适合。
有关详细信息,请查看http://docs.orchardproject.net/Documentation/Alternates