views:

47

answers:

3

Since virturl directory name is not fixed, I wrote code below to include .css file in .aspx page now.

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

The question is, when I use "ResolveUrl" in tag, IDE is always barking about that all CSS classes is undefined.

Is there any better way to define .css file including?

A: 

The IDE will not know that you are including that css file, simply because it will generate in runtime, not before it.

If you need the intelisense put it manually and change later when you need.

BrunoLM
+3  A: 

You can include the files statically inside <% if (false) { %>.

This way, Visual Studio's IntelliSense will see the files, but the ASP.Net runtime will not.
(And the if (false) block should be optimized away by the compiler, so there should be zero performance hit)

SLaks
Arrrr you typed faster than me! This is the best solution IMO. You can continue referencing files the way you are now and then duplicate all of your references using physical paths and wrap the duplicates in an `if(false) { }`
Nathan Taylor
+6  A: 

You can do this with html server controls (noticed the runat="server") like so:

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

This will still resolve the virtual directory for you. It should also support the css intellisense and warnings on the aspx page.

EndangeredMassa
I think that will work even without runat="server"
Kenneth J
The tilde (~) URL syntax requires runat="server".
Brandon Gano
Great! Thank you a lot!
but