示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }