613 votes

Échapper @ personnage dans le moteur de vue rasoir

Je crée un exemple de site ASP.NET MVC 3 en utilisant Razor comme moteur de vue. La syntaxe du rasoir commence par @ 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 puis-je échapper le caractère '@'?

1007voto

Tobiasopdenbrouw Points 5261

@@ devrait le faire.

166voto

Emre Karahan Points 461

Razor @ escape char aux symboles ...

 <img src="..." alt="Find me on twitter as @("@username")" />
 

ou

 <img src="..." alt="Find me on twitter as @("@")username" />
 

101voto

ssg Points 20321

Lorsque vous utilisez la syntaxe @@ dans un attribut tel que:

 <input placeholder="type twitter @@username here">
 

Razor v2 lance cette erreur (v1 est d'accord avec ça):

erreur ASPPARSE: "@" n'est pas valide au début d'un bloc de code.

Évidemment, vous ne pouvez pas utiliser <text> intérieur d'un attribut. Il ne se sent pas bien même si vous le pouvez. Nous avons compris que l'entité HTML pour @ fonctionne correctement:

&#64;

FYI.

40voto

Kasper Skov Points 1004

utilisez <text></text> ou le moyen le plus simple @:

12voto

Alfamale Points 673

@@ est le caractère d'échappement pour @ dans les vues Razor comme indiqué ci-dessus.

Razor essaye cependant de travailler quand un '@' est juste un '@' et où il marque le code C # (ou VB.Net). L'une des principales utilisations pour cela est d'identifier les adresses e-mail dans une vue Razor - il ne devrait pas être nécessaire d'échapper le caractère @ dans une adresse e-mail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X