Je crée un exemple de site ASP.NET MVC 3 en utilisant Razor comme moteur de visualisation. La syntaxe du rasoir commence par le caractère @
, par exemple. @RenderBody()
. Si j'écris @test sur ma page cshtml, cela me donne une erreur d'analyse
CS0103: Le nom 'test' n'existe pas dans le contexte actuel
Comment échapper au caractère "@"?
@@
devrait le faire.
Razor @ escape char to symboles ...
<img src="..." alt="Find me on Twitter as @("@username")" />
ou
<img src="..." alt="Find me on Twitter as @("@")username" />
utilisez <text></text>
ou la méthode la plus simple @:
@Html.Raw("@")
me semble être encore plus fiable que @@
, car dans tous les cas, @@
ne s'échappera pas.
Donc:
<meta name="Twitter:site" content="@twitterSite">
serait:
<meta name="Twitter:site" content="@Html.Raw("@")twitterSite">
Au lieu d'une entité HTML, je préfère utiliser @Html.Raw("@")
.
@@ est le caractère d'échappement pour les vues @ dans Razor, comme indiqué ci-dessus.
Razor essaie cependant de déterminer quand un "@" est juste un "@" et où il marque le code C # (ou VB.Net). L’une des principales utilisations de cette fonction est d’identifier les adresses électroniques dans une vue Razor - il ne devrait pas être nécessaire d’échapper au caractère @ dans une adresse électronique.
Pour la question sur @RazorCodePart1 @@ @RazorCodePart2
, vous devez suivre la séquence suivante:
@RazorCodePart1 @:@@ @RazorCodePart2
Je sais, cela semble un peu étrange, mais cela fonctionne et vous obtiendrez le caractère littéral '@' entre les blocs de code.
Je viens d'avoir le même problème. J'ai déclaré une variable mettant mon texte avec le @.
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="Twitter:site" content="@twitterSite">
ce travail pour moi
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
Ou vous pouvez utiliser: @@ Alan_van_Buuren
:RÉ
J'ai essayé toutes les options ci-dessus et aucune n'a fonctionné. C'est ce que j'ai fait qui a fonctionné:
@{
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>
J'ai créé une variable de chaîne et passé tout le code du modèle RegEx, puis utilisé la variable dans le code HTML, et Razor était cool avec elle.
Vous pouvez utiliser @@ à cette fin. Comme var email = firstName + '\@@' + domain;
il suffit d'ajouter une variable dans le fichier CSHTML var myVariable = @"@";
</ code>
et l'ajouter à votre mise en page <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
</ code>
En réalité, @ devrait être utilisé avec les mots-clés de la syntaxe Razor ou avec la variable/le modèle pour lier une valeur.
Par exemple, si test est affecté à la valeur i.e @ {var test = "ABC"}, vous pouvez obtenir la valeur par les paramètres suivants: @test n'importe où est la page cshtml dans la partie html. sinon, utilisation simple sous @ Html.DisplayName ("test")
Je ne pouvais obtenir aucun d'entre eux pour fonctionner à l'intérieur de mon attribut d'espace réservé, alors j'ai utilisé le caractère spécial xml.
<input type="text" placeholder="fex: firstname@lastname.com"/>
Voir plus d'exemples ici. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html