Fuga @ carattere nel motore di visualizzazione rasoio
-
26-09-2019 - |
Domanda
Sto creando un campione ASP.NET MVC 3 Razor sito utilizzando come motore di visualizzazione. La sintassi rasoio inizia Tipiche @
esempio @RenderBody()
. Se scrivo @test sulla mia pagina cshtml mi dà errore di analisi
CS0103: Il 'test' nome non esiste nel contesto corrente
Come faccio a sfuggire carattere '@'?
Soluzione
@@
dovrebbe farlo.
Altri suggerimenti
Razor @ fuga char simboli ...
<img src="..." alt="Find me on twitter as @("@username")" />
o
<img src="..." alt="Find me on twitter as @("@")username" />
uso <text></text>
o il modo più semplice @:
@Html.Raw("@")
mi sembra essere ancora più affidabile rispetto @@
, dal momento che non in tutti i casi @@
sfuggirà.
Quindi:
<meta name="twitter:site" content="@twitterSite">
potrebbe essere:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
Invece di entità HTML preferisco l'uso di @Html.Raw("@")
.
@@ è il carattere di escape per @ nelle viste rasoio come sopra indicato.
Razor ha tuttavia cercare di capire quando un '@' è solo un codice di '@' e dove segni C # (o VB.Net). Uno dei principali usi per questo è quello di individuare indirizzi di posta elettronica all'interno di una vista Razor - non dovrebbe essere necessario per sfuggire il carattere @ in un indirizzo di posta elettronica.
Per la domanda circa @RazorCodePart1 @@ @RazorCodePart2
, è necessario la sequenza:
@RazorCodePart1 @:@@ @RazorCodePart2
Lo so, sembra un po 'strano, ma funziona e ti porterà il carattere letterale '@' tra i blocchi di codice.
Ho appena avuto lo stesso problema. Ho dichiarato una variabile di mettere il mio testo con la @.
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
questo lavoro per me
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
In alternativa, è possibile utilizzare: @@ Alan_van_Buuren
: D
Ho provato tutte le opzioni di cui sopra e nessuno ha lavorato. Questo è quello che ho fatto che ha funzionato:
@{
string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$";
}
<td>Email</td>
<td>
<input type="text" id="txtEmail" required name="email" pattern=@str />
</td>
ho creato un varible corda e passa tutto il codice modello di RegEx in esso, poi utilizzato la variabile nel codice HTML, e Razor era fresca con esso.
È possibile utilizzare @@ per questo scopo.
Come var email = firstName + '\@@' + domain;
è sufficiente aggiungere una variabile nel file di CSHTML
var myVariable = @"@";
e aggiungerlo al layout
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
Non ho potuto ottenere qualsiasi di questi per il lavoro dentro il mio attributo segnaposto, quindi ho usato XML carattere speciale.
<input type="text" placeholder="fex: firstname@lastname.com"/>
Vedere più esempi qui. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F. html
In realtà @ deve essere usato con il rasoio sintassi di parole chiave o al / modello di variabili per associare un valore.
Per esempio: se il test viene assegnato con il valore cioè @ {test var = "ABC"} allora si può ottenere il valore da impostazioni come @test ovunque la pagina cshtml in parte html. in caso contrario, l'uso semplice come @ Html.DisplayName ( "test")