2016-09-01 7 views
0

javascriptでsitecoreアイテムのHTMLを取得したいと考えています。Sitecore web API:SitecoreからHTMLコンテンツを取得する

私はSitecore Web APIについて読んでいましたが、Sitecore Web APIで利用可能な "GetRenderingHtml"アクションのような発見された詳細を読んでいました。

レンダリングID(下のURLにハイライト表示されています)が見つかりません。

サンプルAPIのURLは次のようになります。

ます。http:/// - /アイテム/ V1/- /アクション/ GetRenderingHtml sc_database =マスター&言語=アン& reneringId = & sc_itemid =アイテムID皆さんから

任意の考えが高く評価されています?!

おかげ

答えて

0

は「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; 
} 
関連する問題