2014-10-14 2 views
1

Мы используем гибридный механизм бритвы для создания компонентов в Sitecore. Мне нужно получить идентификатор определения рендеринга, но я не могу его получить. Это наш baseComponent класс, который наследует от Sitecore.Web.UI.WebControlSitecore Rendering, как получить элемент определения рендеринга?

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); 
} 
+0

Try '' Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering.RenderingItem' –

+0

Sitecore.Context.Page.Renderings'? (не уверен, что я понимаю, что вы после этого) –

ответ

0

Не совсем уверен, что вы после этого, но так как вы унаследовав от Sitecore.Web.UI.WebControl, это может быть что-то вроде этого вы после того, как:

 var p = Parent as Sublayout; 
     var rId = p.RenderingID; 
Смежные вопросы