2010-07-22 30 views
6

Dado que el nombre del directorio virturl no es fijo, escribí el código a continuación para incluir el archivo .css en la página .aspx ahora.Incluir archivos .css en asp.net

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

La pregunta es, cuando uso "ResolveUrl" en la etiqueta, siempre IDE está ladrando acerca de que todas las clases CSS no está definido.

¿Hay alguna forma mejor de definir archivos .css incluidos?

Respuesta

17

Usted puede hacer esto con los controles de servidor HTML (notar la runat="server"), así:

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

Esto aún resolverá el directorio virtual para usted. También debería admitir el css intellisense y las advertencias en la página aspx.

+0

Creo que funcionará incluso sin runat = "server" –

+3

The tilde (~) La sintaxis de URL requiere runat = "servidor". –

+0

¡Genial! ¡Muchas gracias! – but

0

El IDE no sabrá que está incluyendo ese archivo css, simplemente porque se generará en tiempo de ejecución, no antes.

Si necesita el intelisense, póngalo manualmente y cámbielo más tarde cuando lo necesite.

3

Puede incluir los archivos estáticamente dentro de <% if (false) { %>.

De esta manera, IntelliSense de Visual Studio verá los archivos, pero el tiempo de ejecución de ASP.Net no lo hará.
(y el bloque if (false) debe ser optimizado de distancia por el compilador, por lo que no debería ser impacto en el rendimiento cero)

+0

¡Arrrr mecanografió más rápido que yo! Esta es la mejor solución IMO. Puede seguir haciendo referencia a los archivos como está ahora y luego duplicar todas sus referencias usando rutas físicas y envolver los duplicados en un 'if (falso) {}' –

Cuestiones relacionadas