2010-07-22 51 views
6

由於virturl目錄名稱不是固定的,我現在寫了下面的代碼將.css文件包含在.aspx頁面中。在asp.net中包含.css文件

<link rel="Stylesheet" href="<%= ResolveUrl("~/Css/xxx.css") %>" type="text/css" /> 

問題是,當我在標籤中使用「ResolveUrl」時,IDE總是咆哮着所有的CSS類都是未定義的。

有沒有更好的方法來定義.css文件,包括?

回答

17

你可以用HTML服務器控件(注意runat="server")像這樣做:

<link rel="stylesheet" runat="server" media="screen" href="~/css/styles.css" /> 

這仍然會爲您解析虛擬目錄。它還應該支持aspx頁面上的css intellisense和警告。

+0

}我認爲即使沒有runat =「server」也可以工作 – 2010-07-22 01:56:53

+3

代字號(〜)URL語法需要runat =「server」。 – 2010-07-22 03:07:29

+0

太棒了!萬分感謝! – but 2010-07-22 06:01:01

0

IDE不會知道您正在包含該css文件,只是因爲它會在運行時生成,而不是在它之前生成。

如果您需要intelisense手動將其手動並在需要時進行更改。

3

您可以在<% if (false) { %>內靜態包含這些文件。

這樣,Visual Studio的IntelliSense將會看到這些文件,但ASP.Net運行時不會。
(和if (false)塊應該被編譯器優化掉,所以應該是零性能損失)

+0

Arrrr你輸入的比我快!這是IMO的最佳解決方案。您可以繼續按現在的方式引用文件,然後使用物理路徑複製所有引用,並將重複文件包裝在一個'if(false){ – 2010-07-22 01:49:50