3

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

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

4

1 回答 1

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

于 2013-01-02T18:46:41.940 回答