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)NameOfTheZoneLayout.cshtmlLayout.cshtmlModelLayout

于 2013-01-02T18:46:41.940 に答える