/// <summary> /// Builds the <see cref="DotvvmView"/> for the specified HTTP request, resolves the master page hierarchy and performs the composition. /// </summary> public DotvvmView BuildView(IDotvvmRequestContext context) { // get the page markup var markup = markupFileLoader.GetMarkupFileVirtualPath(context); // build the page var pageBuilder = controlBuilderFactory.GetControlBuilder(markup); var contentPage = pageBuilder.BuildControl(controlBuilderFactory) as DotvvmView; FillsDefaultDirectives(contentPage, context.Configuration); // check for master page and perform composition recursively while (IsNestedInMasterPage(contentPage)) { // load master page var masterPageFile = contentPage.Directives[ParserConstants.MasterPageDirective]; var masterPage = (DotvvmView)controlBuilderFactory.GetControlBuilder(masterPageFile).BuildControl(controlBuilderFactory); FillsDefaultDirectives(masterPage, context.Configuration); PerformMasterPageComposition(contentPage, masterPage); masterPage.ViewModelType = contentPage.ViewModelType; contentPage = masterPage; } // verifies the SPA request VerifySpaRequest(context, contentPage); return(contentPage); }
public DotvvmView BuildView(IDotvvmRequestContext context) { // get the page markup var markup = markupFileLoader.GetMarkupFileVirtualPath(context); // build the page var(_, pageBuilder) = controlBuilderFactory.GetControlBuilder(markup); var contentPage = (DotvvmView)pageBuilder.Value.BuildControl(controlBuilderFactory, context.Services); FillsDefaultDirectives(contentPage); // check for master page and perform composition recursively while (IsNestedInMasterPage(contentPage)) { // load master page var masterPageFile = contentPage.Directives ![ParserConstants.MasterPageDirective];