Razor ViewEngine: ¿Cómo puedo escapar del símbolo "@"?

101

Estoy intentando generar algunos identificadores de Twitter en ASP.NET MVC3 junto con la API de Twitter @Anywhere, y no he podido averiguar cómo escapar del símbolo "@" en una vista de Razor.

¿Alguien sabe cuál es la sintaxis para escapar del carácter "@" en Razor?

Intenté usar <text></text>y eso da como resultado un error JIT.

Aaronontheweb
fuente
2
También puede utilizar la entidad HTML &#64;.
rsenna

Respuestas:

143

Tienes que usar @@ para escapar del símbolo @.

Una cosa importante a tener en cuenta es que NO necesita escapar del símbolo @ cuando existe dentro de una dirección de correo electrónico. Razor debería ser lo suficientemente inteligente como para darse cuenta de eso por sí solo.

JasCav
fuente
4
<a href="" title="this @@ no funcionará"> </a>, error de sintaxis en VS y error del analizador en tiempo de ejecución.
Tien Do
1
@Tien, vea el último código de carácter HTML aquí funcionó para mí: stackoverflow.com/a/13584640/84206
AaronLS
25

Si está agregando metaetiquetas de Twitter

y su nombre de usuario de Twitter es, digamos, foobar

Debe tener un aspecto como este

<meta name="twitter:site" content=@("@foobar")>
Mate
fuente
16

si necesita comentar los símbolos @ en el código css y solo @@ no funcionará, use esto:

@("@@font-face"){ ... css ...}
Lin-Art
fuente
1
Este es el mejor método ya que la entidad HTML no es útil dentro de CSS.
ChrisF
2

Tuve otro caso extraño: pasar '@' + @Model.SomePropertya un enlace href.

La mejor solución para este caso se dio en la OMI en esta respuesta a una pregunta similar. Ambos @@y @:no funcionaron mientras se usaba el código html &#64;complicaría las cosas.

Entonces, mi código fue <a href="~/path/?query=@('@')@Model.SomePropery">

@Html.Raw('@')@Model.SomePropery hubiera funcionado también.

Tiberiu Craciun
fuente