ASP.NET 2.0配合MasterPage的最佳化CSS

來源:互聯網
上載者:User
ASP.NET 2.0 中增加了內建的 MasterPage 的支援,這對我們來說是一個很大的便利。然而經過一段時間的使用,我發現 MasterPage 並不是那麼完美:嵌套的 MasterPage 不能支援設計時介面,以及下面要提到的Content Page 中增加 CSS 的問題。 

  通常,在沒有 2.0 之前,我們在頁面裡要增加一個 CSS 引用的文法如下:

<link rel="stylesheet" href="css/test.css" />

  原本是很平常的做法。但是在一個 MasterPage 的子頁面中,出現了一個很尷尬的局面,就是:我們該把上述代碼放到什麼位置?

  因為 MasterPage 的具體內容頁面中,只能定義一個個的 <asp:Content /> 標籤的內容。我們按照通常的做法在 aspx 裡面無法對頁面的 <header/> 內容進行控制。而這個 <link/> 標籤又必須放在 <header/> 內。我實驗過在 <asp:Content /> 內部加入這行代碼,但是會提示出錯的。

  同時,我們也無法在 MasterPage 的 <header/> 內部放好一個 ContentPlaceHolder 用於將來放入 CSS 的引用代碼。

  因此我的做法是定義了一個 helper 類如下:

static public class ControlHelper
{
 static public void AddStyleSheet(Page page, string cssPath)
 {
  HtmlLink link = new HtmlLink();
  link.Href = cssPath;
  link.Attributes["rel"] = "stylesheet";
  link.Attributes["type"] = "text/css";
  page.Header.Controls.Add(link);
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.