4

Sitecore 7.5 と Glass Mapper 3.2.3 でサイトを構築しています。ページのプレゼンテーションの詳細にサブレイアウトを追加すると、Glass Mapper はサブレイアウトのデータ ソースが現在のページであると想定します。また、プレゼンテーションの詳細ダイアログ ボックスでサイトの別のページを選択することで、レンダリング用のデータ ソースを明示的に設定することもできます。

ここに画像の説明を入力

Glass Mapper は引き続き正常に動作し、選択した他のページをレンダリングのデータ ソースとして使用します。ただし、[クエリの作成] ダイアログ ボックスを使用してデータ ソースのクエリを作成しようとすると、Glass Mapper はそれを無視し、現在のページをデータ ソースとして使用するようです。[クエリの作成] ダイアログを使用して作成したクエリを使用する方法はありますか?

ここに画像の説明を入力

編集:ここに私のセットアップに関する詳細情報があります。Sitecore には ContentPage という 1 つのデータ テンプレートがあります。1 つのフィールドがあります: コンテンツ。このデータ テンプレートを使用するサイトに複数のページがあります。sublayoutPageContent というサブレイアウトがあります。GlassUserControl から継承します。Content フィールドを表示するだけです。ページ A のプレゼンテーションの詳細にこのサブレイアウトを追加し、データ ソースを指定しないと、問題なく動作します。ページ A を表示すると、ページ A のコンテンツ フィールドが完全に表示されます。また、サブレイアウトのプレゼンテーションの詳細に移動して、データ ソースとして別のページ (ページ B など) を使用するように指示することもできます。これを行ってからページ A を表示すると、ページ B のコンテンツ フィールドが表示されます。すばらしい - 期待どおりに動作しています。データ ソースのページを選択する代わりに、

4

2 に答える 2

0

クエリは複数のアイテムを返す可能性があるため、単一のアイテムではなく複数のアイテムを期待するようにコードを変更する必要があります。Webフォームでどのように機能するかはわかりませんが、Razorでは次のようにします:

変化する

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<MyEntity>

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<IEnumerable<MyEntity>>
于 2015-01-28T17:24:46.727 に答える