Orchard CMS:为匿名用户使用不同的布局

时间:2013-01-02 16:06:41

标签: layout content-management-system orchardcms anonymous

我想为匿名用户使用不同的布局视图。我尝试过使用url替换,我不知道如何为匿名用户创建布局,因为没有特定的url。 我们的想法是,如果新用户访问该网站,我想显示一个信息非常有限的启动画面,并可选择注册/登录以查看整个网站。这个启动画面将与网站的其他部分具有完全不同的布局/外观。 我尝试使用匿名用户层,但我所能做的就是移动小部件(也许我错过了一些东西)。

非常感谢任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:5)

没有开箱即用的解决方案,但你可以做这样的事情来获得你想要的东西:

使用您选择的名称在文件中添加新布局 - 例如,您可以将其命名为Splash.cshtml

将以下代码添加到Layout.cshtml模板的顶部:

@if (WorkContext.CurrentUser == null) {
    @Display.Splash()
    return;
}

代码将检查用户是否已登录。如果不是,则会呈现Splash.cshtml模板的内容,并停止呈现Layout.cshtml模板的其余部分。

如果您需要在Splash.cshtml模板中显示任何小部件,只需添加@Display(Layout.NameOfTheZone)即可将NameOfTheZone替换为您所在区域的实际名称。 '在Layout.cshtml模板中使用。通常,您在Layout.cshtml模板中使用Model对象的任何内容,都可以在任何视图中使用Layout对象。