我想通过javascript获得sitecore项目的HTML。
我读到了Sitecore Web API,在阅读时发现了一些细节,比如Sitecore Web API中提供了"GetRenderingHtml“操作。
我找不到renderingid (在下面的URL中突出显示)。
示例API url如下所示。
http:///-/item/v1/-/actions/GetRenderingHtml?sc_database=master&language=en&reneringId=&sc_itemid=item-id
如果你们有任何想法,我们将非常感谢!
谢谢
发布于 2016-09-01 16:19:57
XSL操作被设计为仅使用"GetRenderingHtml“呈现,而不使用独立的C#组件,如子布局(".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;
}https://stackoverflow.com/questions/39265603
复制相似问题