2015-12-29 6 views
5

コードの表示値に基づいてアイテムのレンダリングされたhtmlを取得する方法はありますか?最近のプロジェクトでは、これを行う必要がありました。私たちは現在、自分のサイトを別のリクエストで掻いていて、無駄に思えます。SitecoreレンダリングHtml

+0

Item Web APIを使用できますが、レンダリングパラメータは考慮されず、データソースのアイテムIDを指定する必要があります。私はこれがあなたが何をしたのかとは思わないでしょう。ページ15:https://sdn.sitecore.net/upload/sdn5/modules/sitecore%2520item%2520web%2520api/sitecore_item_web_api_developer_guide_sc65-66-usletter.pdf – jammykam

答えて

3

残念ながら、これを達成するクリーンな方法はないと思います。ユーザーコントロールは、ページのライフサイクルを実行し、したがってHTTPリクエストを実行することに大きく依存します。また、リクエストの過程で構築されるSitecoreコンテキストのさまざまな部分に依存することがよくあります。

MVCでは、Renderメソッドを直接呼び出すことができるため、さらに多くのオプションがあります。しかし、最初にモデルを正しく構築する必要があります。だからあなたはおそらくまだ困難があるでしょう。

あなたが言ったように、それは無駄に思えますが、画面の擦り傷はそれを達成するための通常の方法です。私はこのアプローチを使ってページコンテンツのインデックスを作成する既存のモジュールをいくつか知っています。

+0

フィードバックありがとうございます。上記の理由により、私は現在のアプローチだけを残すように見えます。 – Teeknow

1

私は通常のWebリクエストを開き、アイテムを取得します。特定のプレースホルダだけが必要な場合は、?mode=placeholder-nameのようなものでアクセスを制限します。

これは、サイトをクロールして検索インデックスにHTMLをキャッシュする場合に特に便利です。

0

エクスペリエンスエディタの意味ですか?エクスペリエンスエディタで開発された検索用のページのインデックスを作成しようとするときにも同じ問題がありました。私たちが行ったことは、ページへのHttpRequestを作成し、htmlを取得し、すべてのタグを削除し、コンテンツを_contentとして索引付けしました。キーワード検索をしたかったら、_contentと照合しました。お役に立てれば。 Charlie

+0

彼は既にページにリクエストしており、代わりの方法を探しています。 ( "私たちは現在、別のリクエストで私たち自身のサイトを掻き集めている") –

+1

それを忘れてしまった。私は同じことを考えようとしていましたが、見つけられませんでした:( –

+1

問題ありません。この質問のバリエーションはStack Overflowで頻繁に現れます。 –

関連する問題