2010-07-22 33 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