public OutputCachedWidgetModel CaptureWidgetOutput(Func <string> htmlFactory) { var model = new OutputCachedWidgetModel(); try { WithinContext = true; RequiredResources = new List <ResourceRequiredModel>(); IncludedResources = new List <ResourceIncludedModel>(); FootScripts = new List <string>(); HeadScripts = new List <string>(); model.Html = htmlFactory(); model.IncludedResources = IncludedResources; model.RequiredResources = RequiredResources; model.FootScripts = FootScripts; model.HeadScripts = HeadScripts; } finally { WithinContext = false; } return(model); }
private void ReinstateResources(OutputCachedWidgetModel cachedModel) { foreach (var resource in cachedModel.IncludedResources) { _resourceManager.Include(resource.ResourceType, resource.ResourcePath, resource.ResourceDebugPath, resource.RelativeFromPath); } foreach (var resource in cachedModel.RequiredResources) { _resourceManager.Require(resource.ResourceType, resource.ResourceName); } foreach (var script in cachedModel.HeadScripts) { _resourceManager.RegisterHeadScript(script); } foreach (var script in cachedModel.FootScripts) { _resourceManager.RegisterFootScript(script); } }