﻿# ASP.NET 有時必須同時停用 Theme 與 StyleSheetTheme

ASP.NET 2.0 在 Page 類別新增了個 StyleSheetTheme 屬性，可以指定頁面中要載入所有在該 Theme 目錄中的所有 CSS 檔案 ( App\_Themes\\*ThemeName*\\\*.css )，預設來說你只要有指定 Theme 屬性其 StyleSheetTheme 就會跟 Theme 一樣，也就是說該頁面除了會套用 Theme 所需的 \*.skin 檔案之外，還會載入所有放在 Theme 目錄下的所有 \*.css 檔案。

我通常的習慣是會將整個網站會用到的 Theme 定義在 web.config 中，才不用再每一頁的第一行加上 Theme="XXXXTheme" 的屬性宣告。不過如果你網站中某一頁不想要設定任何 Theme 的時候，你也可能會直覺得想到在頁面第一行宣告 <%@ Page EnableTheming="false" %> 用以關閉 Theme 的套用，但這是有問題的！

我所遇到的問題是設定了 EnableTheming="false" 的確會將所有 \*.skin 的套用關閉，但是該 Theme 目錄下的所有 \*.css 檔案還是依然會載入到頁面中，導致我的頁面的 Layout 還是被不想載入的 Style Sheet 設定給破壞。我自己是有研究出兩種解決方法：

第一種: 在 App\_Theme 目錄下新增一個 None 目錄，裡面不要放任何檔案，並在頁面加上 <%@ Page **Theme="None"** %> 的設定即可。

第二種: 在頁面中設定 <%@ Page **Theme="" StyleSheetTheme=""** %> 就可以同時關閉 Theme 與 StyleSheetTheme 了。

**相關連結**

-   [ASP.NET 佈景主題和面板概觀](http://msdn.microsoft.com/zh-tw/library/ykzx33wh.aspx)
