.net mvc扩展HtmlHelper类的引用资源文件方法

一、在mvc项目根目录下建 App_Code 文件夹,在该文件夹下建 UIHelper 类

UIHelper.cs

    public static class UIHelper
    {
        /// <summary>
        /// 获得资源版本号
        /// </summary>
        /// <returns></returns>
        public static string GetVersion()
        {
            return ConfigurationManager.AppSettings["Version"];
        }

        /// <summary>
        /// tag转mvchtml标签
        /// </summary>
        /// <param name="tagBuilder"></param>
        /// <param name="renderMode"></param>
        /// <returns></returns>
        public static MvcHtmlString ToMvcHtmlString(this TagBuilder tagBuilder, TagRenderMode renderMode)
        {
            return new MvcHtmlString(tagBuilder.ToString(renderMode));
        }

        /// <summary>
        /// 自定义script标签
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="jsPath"></param>
        /// <returns></returns>
        public static MvcHtmlString Script(this HtmlHelper htmlHelper, string jsPath)
        {
            // 获取自定义js域
            string jsUrl = ConfigurationManager.AppSettings["JsURL"];
            TagBuilder tag = new TagBuilder("script");
            string path = string.Empty;
            if (string.IsNullOrEmpty(jsUrl))
            {
                path = HttpContext.Current.Request.ApplicationPath + $"{jsPath}?v={GetVersion()}";
            }
            else
            {
                path = $"{jsUrl}{jsPath}?v={GetVersion()}";
            }
            tag.MergeAttribute("src", path);
            return tag.ToMvcHtmlString(TagRenderMode.Normal);
        }

        /// <summary>
        /// 自定义link标签
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="cssPath"></param>
        /// <returns></returns>
        public static MvcHtmlString Css(this HtmlHelper htmlHelper, string cssPath)
        {
            // 获取自定义css域
            string cssURL = ConfigurationManager.AppSettings["CssURL"];
            TagBuilder tag = new TagBuilder("link");
            string path = string.Empty;
            if (string.IsNullOrEmpty(cssURL))
            {
                path = HttpContext.Current.Request.ApplicationPath + $"{cssPath}?v={GetVersion()}";
            }
            else
            {
                path = $"{cssURL}{cssPath}?v={GetVersion()}";
            }
            tag.MergeAttribute("href", path);
            tag.MergeAttribute("rel", "stylesheet");
            return tag.ToMvcHtmlString(TagRenderMode.SelfClosing);
        }
    }

二、扩展方法的使用

    @Html.Css("/Content/css/public.min.css");
    @Html.Script("/Content/js/jquery-1.10.2.min.js");

  如下图:

 

posted @ 2018-10-30 17:03  by-lhc  阅读(475)  评论(1编辑  收藏  举报