Exemple #1
0
        /// <summary>
        /// 设置css引用
        /// </summary>
        /// <param name="cssUrl">引入的css路径(支持~/)</param>
        /// <param name="renderPriority">呈现优先级</param>
        public void IncludeCss(string cssUrl, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified)
        {
            if (string.IsNullOrEmpty(cssUrl))
            {
                throw new ArgumentNullException("cssUrl");
            }

            IncludeCss(null, cssUrl, renderPriority: renderPriority);
        }
Exemple #2
0
        /// <summary>
        /// 设置Script引用
        /// </summary>
        /// <param name="scriptUrl">引入的script路径(支持~/)</param>
        /// <param name="renderPriority">呈现优先级</param>
        public void IncludeScript(string scriptUrl, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified)
        {
            if (string.IsNullOrEmpty(scriptUrl))
            {
                throw new ArgumentNullException("scriptUrl");
            }

            IncludeScript(null, scriptUrl, renderPriority: renderPriority);
        }
Exemple #3
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="resourceType">资源类型</param>
        /// <param name="basePath">基路径</param>
        /// <param name="url"></param>
        /// <param name="debugUrl"></param>
        /// <param name="renderPriority"></param>
        /// <param name="renderLocation"></param>
        /// <param name="attributes"></param>
        public ResourceEntry(PageResourceType resourceType, string basePath, string url, string debugUrl,
                             ResourceRenderPriority renderPriority, ResourceRenderLocation renderLocation, IDictionary <string, string> attributes)
        {
            this.ResourceType   = resourceType;
            this.BasePath       = basePath;
            this.Url            = url;
            this.DebugUrl       = debugUrl;
            this.RenderPriority = renderPriority;
            this.RenderLocation = renderLocation;

            if (attributes != null)
            {
                this.Attributes = attributes;
            }
        }
Exemple #4
0
        /// <summary>
        /// 从sourceResourceEntries按照renderLocation、renderPriority过滤符合要求的ResourceEntry集合
        /// </summary>
        private IEnumerable <ResourceEntry> FilterResourceEntries(IList <ResourceEntry> sourceResourceEntries, ResourceRenderLocation?renderLocation, ResourceRenderPriority renderPriority)
        {
            if (sourceResourceEntries == null)
            {
                return(new List <ResourceEntry>());
            }

            if (renderLocation.HasValue)
            {
                return(sourceResourceEntries.Where(r => r.RenderLocation == renderLocation.Value && r.RenderPriority == renderPriority));
            }
            else
            {
                return(sourceResourceEntries.Where(r => r.RenderPriority == renderPriority));
            }
        }
Exemple #5
0
        /// <summary>
        /// 设置css引用
        /// </summary>
        /// <param name="basePath">基路径</param>
        /// <param name="fileName">文件名称</param>
        /// <param name="debugFileName">在调试状态使用的文件</param>
        /// <param name="renderPriority">呈现优先级</param>
        /// <param name="htmlAttributes">html属性集合</param>
        public void IncludeCss(string basePath, string fileName, string debugFileName = null, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified, IDictionary <string, string> htmlAttributes = null)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName");
            }

            ResourceEntry resource = new ResourceEntry(PageResourceType.CSS, basePath, fileName, debugFileName, renderPriority, ResourceRenderLocation.Head, htmlAttributes);

            _includedCsss.Add(resource);
        }
Exemple #6
0
        /// <summary>
        /// 基于Combres的ResourceName引入js/css
        /// </summary>
        /// <param name="resourceType"><see cref="PageResourceType"/></param>
        /// <param name="resouceSetName">Combres中设置的ResourceSet</param>
        /// <param name="debugResouceSetName">debug时使用的ResouceSetName</param>
        /// <param name="renderPriority">呈现优先级</param>
        /// <param name="renderLocation">在页面中的呈现位置</param>
        /// <param name="htmlAttributes">设置的html属性</param>
        public void IncludeCombresResouceSet(PageResourceType resourceType, string resouceSetName, string debugResouceSetName = null, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified, ResourceRenderLocation renderLocation = ResourceRenderLocation.Head, IDictionary <string, string> htmlAttributes = null)
        {
            if (string.IsNullOrEmpty(resouceSetName))
            {
                throw new ArgumentNullException("resouceSetName");
            }

            string url      = WebExtensions.CombresUrl(resouceSetName);
            string debugUrl = null;

            if (debugResouceSetName != null)
            {
                debugUrl = WebExtensions.CombresUrl(debugResouceSetName);
            }

            ResourceEntry resource = new ResourceEntry(resourceType, null, url, debugUrl, renderPriority, renderLocation, htmlAttributes);

            switch (resourceType)
            {
            case PageResourceType.JS:
                _includedScripts.Add(resource);
                break;

            case PageResourceType.CSS:
                _includedCsss.Add(resource);
                break;
            }
        }
 /// <summary>
 /// 设置css引用
 /// </summary>
 /// <param name="html"></param>
 /// <param name="cssUrl">css路径</param>
 /// <param name="renderPriority"><see cref="ResourceRenderPriority"/></param>
 public static void IncludeCss(this HtmlHelper html, string cssUrl, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified)
 {
     IncludeCss(html, null, cssUrl, renderPriority: renderPriority);
 }
        /// <summary>
        /// 在页面引用Script
        /// </summary>
        /// <param name="html"></param>
        /// <param name="basePath">基路径</param>
        /// <param name="fileName">文件名称</param>
        /// <param name="debugFileName">用于调试的文件名称</param>
        /// <param name="renderPriority"><see cref="ResourceRenderPriority"/></param>
        /// <param name="renderLocation"><see cref="ResourceRenderLocation"/></param>
        /// <param name="htmlAttributes">html属性</param>
        public static void IncludeScript(this HtmlHelper html, string basePath, string fileName, string debugFileName = null, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified, ResourceRenderLocation renderLocation = ResourceRenderLocation.Head, IDictionary <string, string> htmlAttributes = null)
        {
            IPageResourceManager pageResourceManager = DIContainer.ResolvePerHttpRequest <IPageResourceManager>();

            pageResourceManager.IncludeScript(basePath, fileName, debugFileName, renderPriority, renderLocation, htmlAttributes);
        }
 /// <summary>
 /// 在页面引用Script
 /// </summary>
 /// <param name="html"></param>
 /// <param name="scriptUrl">script的url</param>
 /// <param name="renderPriority">呈现优先级<see cref="ResourceRenderPriority"/></param>
 public static void IncludeScript(this HtmlHelper html, string scriptUrl, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified)
 {
     IncludeScript(html, null, scriptUrl, renderPriority: renderPriority);
 }
        /// <summary>
        /// 在页面引用Combres Script
        /// </summary>
        /// <param name="html"></param>
        /// <param name="resourceType"><see cref="PageResourceType"/></param>
        /// <param name="resourceSetName">在Combres设置的ResourceSet名称</param>
        /// <param name="renderPriority">资源呈现优先级<see cref="ResourceRenderPriority"/></param>
        public static void IncludeCombresScript(this HtmlHelper html, PageResourceType resourceType, string resourceSetName, ResourceRenderPriority renderPriority = ResourceRenderPriority.Unspecified)
        {
            IPageResourceManager pageResourceManager = DIContainer.ResolvePerHttpRequest <IPageResourceManager>();

            pageResourceManager.IncludeCombresResouceSet(resourceType, resourceSetName, renderPriority: renderPriority);
        }