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

mki*_*o76 3 layout anonymous content-management-system orchardcms

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

任何帮助将不胜感激.谢谢!

Iva*_*rić 5

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

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

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

@if (WorkContext.CurrentUser == null) {
    @Display.Splash()
    return;
}
Run Code Online (Sandbox Code Playgroud)

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

如果您需要在Splash.cshtml模板中显示任何小部件,可以通过简单地添加@Display(Layout.NameOfTheZone)应替换的位置来添加它NameOfTheZone,以及您在Layout.cshtml模板中使用的区域的实际名称.通常,您在Layout.cshtml模板内部Model使用Layout对象的任何内容,您可以在任何视图中使用对象.