/// <summary>Linking master page and attaching specific content to it's placeholders</summary> public ContainerTag ReusableCreateTagTree( PlaceHolderDelegate titleContent, PlaceHolderDelegate mainContent, ViewModels.MasterViewModel model) { SiteMaster master = this.MasterBuilder(); master.ParentBuilder = this; master.SelfFireOnCreateBuilder(); return(master // SEE HERE ! - example how to attach specifc content to master page's placeholders .Attach <SiteMaster>(x => x.TitleContent = titleContent) .Attach <SiteMaster>(x => x.MainContent = mainContent) // just call master page method to generate combined content .CreateTags(model)); }
/// <summary>Creates tags nested inside placeholder</summary> /// <param name="layout">Reference to virtual method generating tags inside place holder</param> /// <param name="defaultLayout">Reference to virtual method generating tags inside place holder</param> /// <returns></returns> public virtual ContainerTag PlaceHolder(PlaceHolderDelegate layout, Func <ContainerTag, ContainerTag> defaultLayout = null) { ContainerTag placeHolderContainer = new PlaceHolderTag(layout, defaultLayout); if (layout != null) { placeHolderContainer = layout(placeHolderContainer); } else if (defaultLayout != null) { placeHolderContainer = defaultLayout(placeHolderContainer); } FireOnDeclarePlaceHolder(); return(placeHolderContainer); }
/// <summary>Default constructor</summary> public PlaceHolderTag(PlaceHolderDelegate layout, Func <ContainerTag, ContainerTag> defaultLayout) { Layout = layout; DefaultLayout = defaultLayout; }