Se lavorate in ASP.NET MVC o ASP.NET Core implementando le vostre views con Razor e vi capita di inserire gli stili CSS all'interno della vostra pagina, potreste trovarvi prima o poi faccia a faccia con uno dei seguenti errori di compilazione:
CS0103: The name 'media' does not exist in the current context.
CS0103: The name 'if' does not exist in the current context.
... E via dicendo.
Nella maggior parte dei casi questo tipo di errori è dovuto al fatto che avete utilizzato una CSS media query (o altra istruzione CSS3 analoga) come ad esempio la seguente:
1 2 3 4 5 6 7 8 |
<style type="text/css"> @media print { .no-print, .no-print * { display: none !important; } } </style> |
... ignorando il fatto che la @ è un carattere riservato nelle pagine Razor .cshtml.
Per fortuna la soluzione è molto semplice, in quanto la sintassi di Razor consente l'escape di quel carattere ripetendolo due volte: è sufficiente sostituire @media con @@media e il gioco è fatto!
1 2 3 4 5 6 7 8 |
<style type="text/css"> @@media print { .no-print, .no-print * { display: none !important; } } </style> |
Anche per questa volta è tutto: felice sviluppo!