• ASP.NET使用母版页后动态加载JS/CSS

    ASP.NET中使用母版页最大的好处就是当有许多相似的页面时只用加一个母版页,每个页面用这个母版页生成内容页,然后根据情况修改每个内容页中的内容,保持页面布局的统一,同时也减少了代码量。

    但另一个突出的问题是使用母版页后,每个内容页中没有了<head></head>标记,因为这都在母版页中有了,而这对修改标题、加载JS/CSS等文件都有影响,前面我已经说过在ASP.NET中使用母版页后统一网页标题,那这篇就来说说如何加载JS/CSS等文件。

    ASP.NET中使用母版页后统一网页标题中修改标题的原理一样,加载JS/CSS等文件可以在内容页中加,也可以在母版页中统一加载。

    1、在单个内容页中加载

    将下面两段段代码放入内容页的Page_Load中即可,很简单了,也不再多解释。

    • 加载JS文件
    #region 加载JS文件
    HtmlGenericControl JSControl = new HtmlGenericControl("script");
    JSControl.Attributes.Add("type", "text/javascript");
    JSControl.Attributes.Add("src", "JS/js.js");
    Page.Header.Controls.Add(JSControl);
    #endregion
    
    • 加载CSS文件
    HtmlLink CssControl = new HtmlLink();
    CssControl.Href = "/CSS/Style.css";
    CssControl.Attributes.Add("rel", "stylesheet");
    CssControl.Attributes.Add("type", "text/css");
    Page.Header.Controls.Add(CssControl);
    

    2、在母版页中统一加载

    string requestContentType = this.ContentPlaceHolder1.Page.GetType().ToString();
    if (requestContentType == "ASP.admin_c2c_user_management_aspx")//获取请求的内容页类型,格式如ASP.目录名_文件名_aspx(好像文件名中的“-”都会被转换成了“_”)
    {
        //加载JS文件
        HtmlGenericControl JSControl = new HtmlGenericControl("script");
        JSControl.Attributes.Add("type","text/javascript");
        JSControl.Attributes.Add("src", "JS/js.js");
        Page.Header.Controls.Add(JSControl);
        // 加载CSS文件
        HtmlLink CssControl = new HtmlLink();
        CssControl.Href = "/CSS/Style.css";
        CssControl.Attributes.Add("rel", "stylesheet");
        CssControl.Attributes.Add("type", "text/css");
        Page.Header.Controls.Add(CssControl);
    }