2010-07-22 16 views
6

Poiché il nome della directory virturl non è corretto, ho scritto il codice seguente per includere il file .css nella pagina .aspx adesso.Include i file .css in asp.net

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

La domanda è, quando uso "ResolveUrl" nel tag, IDE è sempre abbaiare che tutte le classi CSS non è definito.

C'è un modo migliore per definire il file .css incluso?

risposta

17

Si può fare questo con i controlli server HTML (notare il runat="server") in questo modo:

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

Questo risolverà comunque la directory virtuale per te. Dovrebbe anche supportare il css intellisense e gli avvertimenti sulla pagina aspx.

+0

Penso che funzionerà anche senza runat = "server" –

+3

La tilde (~) La sintassi URL richiede runat = "server". –

+0

Ottimo! Grazie mille! – but

0

L'IDE non saprà che stai includendo quel file css, semplicemente perché genererà in runtime, non prima di esso.

Se è necessaria l'intelisense, inserirla manualmente e modificare in un secondo momento quando necessario.

3

È possibile includere i file staticamente all'interno di <% if (false) { %>.

In questo modo, IntelliSense di Visual Studio vedrà i file, ma il runtime ASP.Net non lo farà.
(e il blocco if (false) deve essere ottimizzato via dal compilatore, quindi non ci dovrebbe essere zero calo di prestazioni)

+0

Arrrr hai digitato più veloce di me! Questa è la migliore soluzione IMO. Puoi continuare a fare riferimento ai file nel modo in cui sei ora e quindi duplicare tutti i tuoi riferimenti utilizzando percorsi fisici e avvolgere i duplicati in un 'if (false) {}' –

Problemi correlati