Sitecore渲染,如何获取渲染定义项?

时间:2014-10-14 12:39:06

标签: c# rendering sitecore

我们正在使用混合剃须刀引擎在Sitecore中创建组件。 我需要获取渲染定义ID,但我无法得到它。 这是继承自baseComponent

Sitecore.Web.UI.WebControl
protected override void DoRender(HtmlTextWriter output)
{
  string razorpath = RazorPath;
  Model = GetViewModel();
  var itemId = ID; //renderingID || getitem() also not working

  HttpContext.Current.Response.Write(itemId);
  Guid itemGuid;
  if (Guid.TryParse(itemId, out itemGuid))
  {
    var webControl = ContentStore.GetItem<WebControl>(itemId);
    if (webControl != null && string.IsNullOrEmpty(webControl.View))
      razorpath = webControl.View.Replace("/WebControls", "");
  }

  var renderedContent = TemplateExpander.ExpandTemplate(razorpath, Model);

  output.Write(renderedContent);
}

1 个答案:

答案 0 :(得分:0)

不完全确定您的目标是什么,但由于您继承自Sitecore.Web.UI.WebControl,因此您可能会遇到以下情况:

        var p = Parent as Sublayout;
        var rId = p.RenderingID;