/// <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); }
/// <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); }
/// <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; } }
/// <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)); } }
/// <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); }
/// <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); }