2016-09-01 2 views
0

Я хотел бы получить HTML-файл sitecore через javascript.Sitecore web API: получить HTML-контент из Sitecore

Я читал о веб-интерфейсе Sitecore и при чтении найденных деталей, например, есть действие «», доступное в Sitecore Web API.

Мне не удается найти рендеринга (выделено в приведенном ниже URL).

Пример API-интерфейса API выглядит так.

Http: /// -/пункт/v1/-/действия/GetRenderingHtml sc_database = мастер & язык = еп & reneringId = & sc_itemid = идентификатор записи

Любые мысли от вас, ребята, высоко ценятся?!

Благодаря

ответ

0

"GetRenderingHtml" Действие Item Web API предназначен для работы только с XSL-визуализаций, а не с автономными компонентами # C, как sublayout (".ascx" пользовательские элементы управления) или макеты (». aspx "," .cshtml ").

Вы можете видеть из реализации класса «Sitecore.ItemWebApi.Actions.GetRenderingHtmlAction» с помощью декомпилятора, что он просто запускает конвейер «getRenderingPreview» с заданными аргументами.

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; 
} 
Смежные вопросы