应用MasterPage的页面引用外部CSS文件的方法

时间:2022-11-19 16:25:21
    首先,如果在应用了MasterPage的页面<asp:Content〉标签外部添加<link>标签引用CSS文件,会造成编译错误。如果在<asp:Content〉标签内引用CSS文件,会造成解释错误.在MasterPage的<head>标签中引用CSS文件,会导致所有应用了该MasterPage的页面全部引用了该CSS文件,同时会造成一些微妙的引用路径问题。那么如果想让应用了MasterPage的页面引用自己的CSS文件,有这样一种解决方案——使用一个自定义控件,负责向<head>标签写入引用CSS文件的<link>标签,具体可以看一下 木野狐的一篇文章 ASP.NET 2.0 中配合 Master Page 使用的优化 CSS 模型。

    另外,相对于这种方法,还有一种简单的Hack,首先在MasterPage中添加<link>标签,但是herf属性为空
< head  runat ="server" >
    
< link  id ="cssStyleSheet1"  rel ="stylesheet"  type ="text/css"  runat ="server"   />
    
< link  id ="cssStyleSheet2"  rel ="stylesheet"  type ="text/css"  runat ="server"   />
    
< link  id ="cssStyleSheet3"  rel ="stylesheet"  type ="text/css"  runat ="server"   />
</ head >
    数量只能寒一个了……如果不知道用多少,还是多放几个好了。然后在应用了MasterPage的页面里动态修改<link>标签的herf属性
protected   void  Page_Init( object  sender, EventArgs e) {
        
if  ( ! IsPostBack) {
           HtmlLink csslink 
=  (HtmlLink)Master.FindControl( " cssStyleSheet1 " );
           csslink.Attributes.Add(
" href " , " Cart.css " );
        }
}
    目前我发现的办法就只有这两种了,如果各位还有什么好的办法,恳请告诉小弟,目前正在弄一个涉及这个问题的应用

    PS.园子是不是有个bug?突然发现,到首页了……似乎发到别的分类的,再编辑默认分类就变首页了……-_-bb