Escapar carácter @ en el motor de vista de afeitar
-
26-09-2019 - |
Pregunta
Estoy creando una muestra de ASP.NET MVC 3 Razor sitio usando como punto de vista motor. La sintaxis de afeitar comienza con carácter @
por ejemplo, @RenderBody()
. Si escribo @test en mi página cshtml me da error de análisis
CS0103: El 'test' nombre no existe en el contexto actual
¿Cómo escapar de carácter '@'?
Solución
@@
debería hacerlo.
Otros consejos
Razor @ de escape char a los símbolos ...
<img src="..." alt="Find me on twitter as @("@username")" />
o
<img src="..." alt="Find me on twitter as @("@")username" />
<text></text>
uso o la manera más fácil @:
@Html.Raw("@")
me parece ser aún más fiable que @@
, ya que no en todos los casos @@
escapará.
Por lo tanto:
<meta name="twitter:site" content="@twitterSite">
sería:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
En lugar de entidad HTML prefiero el uso de @Html.Raw("@")
.
@@ es el carácter de escape para @ en las vistas de la maquinilla de afeitar como se indicó anteriormente.
Razor embargo, no tratar de resolver cuando un '@' es simplemente un código de '@' y donde las marcas C # (o VB.Net). Uno de los usos principales para esto es para identificar direcciones de correo electrónico dentro de una vista Razor - no debería ser necesario escapar el carácter @ en una dirección de correo electrónico.
En la pregunta sobre @RazorCodePart1 @@ @RazorCodePart2
, es necesario la secuencia:
@RazorCodePart1 @:@@ @RazorCodePart2
Lo sé, parece un poco extraño, pero funciona y le dará el carácter literal '@' entre los bloques de código.
Sólo tenía el mismo problema. Declaré una variable poniendo mi texto con el @.
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
este trabajo para mí
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
O puede utilizar: @@ Alan_van_Buuren
: D
He intentado todas las opciones anteriores y ninguno funcionó. Esto es lo que hice que trabajaba:
@{
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>
I creó una varible cadena y se pasa todo el código patrón de expresión en él, entonces se utiliza la variable en el html, y Razor estaba bien con eso.
Se puede utilizar @@ para este propósito.
Al igual que var email = firstName + '\@@' + domain;
sólo tiene que añadir una variable en el archivo CSHTML
var myVariable = @"@";
y añadirlo a su disposición
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
no pude conseguir cualquiera de estos para el trabajo dentro de mi atributo de marcador de posición, por lo que utiliza XML carácter especial.
<input type="text" placeholder="fex: firstname@lastname.com"/>
Vea más ejemplos aquí. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F. html
En realidad @ debe ser utilizado con la maquinilla de afeitar Palabras clave de sintaxis o de la variable / modelo para enlazar un valor.
Por ejemplo: si la prueba se le asigna el valor es decir @ {var test = "ABC"} entonces se puede obtener el valor de configuración como @test cualquier lugar es la página cshtml en parte html. de lo contrario, el uso simple como @ Html.DisplayName ( "test")