は「GetRenderingHtml」アイテムのWeb APIアクションはsublayoutのようなスタンドアロンのC#のコンポーネント(「た.ascx」ユーザーコントロール)またはレイアウト(」とXSLレンダリングでのみ動作していないように設計されました。 aspx "、" .cshtml "ページ)。
あなたはそれだけで指定された引数で「getRenderingPreview」パイプラインを実行します逆コンパイラを使用して「Sitecore.ItemWebApi.Actions.GetRenderingHtmlAction」クラスの実装から見ることができます。
public override void Process(HttpContext httpContext)
{
Assert.ArgumentNotNull(httpContext, "httpContext");
httpContext.Response.Clear();
httpContext.Response.DisableCaching();
if (!this.IsAccessAllowed())
{
httpContext.Response.StatusCode = 0x193;
httpContext.Response.End();
}
else
{
string previewHtml = RenderingPreviewProvider.GetPreviewHtml();
httpContext.Response.ContentType = "text/html";
httpContext.Response.Write(previewHtml);
httpContext.Response.Flush();
}
}
GetPreviewHtmlは次のようになります。
public static string GetPreviewHtml()
{
Database database = GetDatabase();
Language language = Context.Language;
Item renderingItem = GetRenderingItem(database, language);
Item sourceItem = GetSourceItem(database, language);
string parameters = GetParameters();
RenderingReference reference = new RenderingReference(renderingItem) {
Settings = {
DataSource = sourceItem.ID.ToString(),
Parameters = parameters
}
};
GetRenderingPreviewArgs args = new GetRenderingPreviewArgs(renderingItem, sourceItem);
CorePipeline.Run("getRenderingPreview", args);
return args.Result;
}