update - sintaxis razor mvc 5
Escape @ personaje en la maquinilla de afeitar vista (14)
Estoy creando un sitio MVC 3 de ASP.NET de ejemplo utilizando Razor como motor de visualización. La sintaxis de la maquinilla de afeitar comienza con el carácter @
, por ejemplo, @RenderBody()
. Si escribo @test en mi página cshtml, me da un error de análisis
CS0103: el nombre ''prueba'' no existe en el contexto actual
¿Cómo puedo escapar del carácter ''@''?
@@ es el carácter de escape para @ en las vistas de Razor como se indicó anteriormente.
Sin embargo, Razor intenta calcular cuándo un ''@'' es solo un ''@'' y donde marca el código C # (o VB.Net). Uno de los usos principales para esto es identificar las direcciones de correo electrónico dentro de una vista de Razor; no debería ser necesario escapar del carácter @ en una dirección de correo electrónico.
Acabo de tener el mismo problema. Declaré una variable poniendo mi texto con la @.
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
En lugar de la entidad HTML, prefiero el uso de @ Html.Raw ("@")
En realidad, @ debe usarse con las palabras clave de sintaxis de Razor o con la variable / modelo para vincular un valor.
Por ejemplo: si a la prueba se le asigna un valor, es decir, @ {var test = "ABC"}, puede obtener el valor mediante la configuración ya que @test en cualquier parte es una página cshtml en la parte html. de lo contrario, uso simple como @ Html.DisplayName ("prueba")
No pude hacer que ninguno de estos funcionara dentro del atributo de mi marcador de posición, por lo que utilicé un carácter especial xml.
<input type="text" placeholder="fex: firstname@lastname.com"/>
Ver más ejemplos aquí. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
Para la pregunta sobre @RazorCodePart1 @@ @RazorCodePart2
, necesita la secuencia:
@RazorCodePart1 @:@@ @RazorCodePart2
Lo sé, parece un poco extraño, pero funciona y te dará el carácter literal ''@'' entre los bloques de código.
Probé todas las opciones anteriores y ninguna funcionó. Esto es lo que hice que funcionó:
@{
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>
Creé una cadena variable y le pasé todo el código de patrón RegEx, luego usé la variable en el html, y Razor fue genial con ella.
Puedes usar @@ para este propósito. Like var email = firstName + ''/@@'' + domain;
Razor @ escape char a símbolos ...
<img src="..." alt="Find me on twitter as @("@username")" />
o
<img src="..." alt="Find me on twitter as @("@")username" />
este trabajo para mi
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
O puedes usar: @@ Alan_van_Buuren
:RE
solo agregue una variable en el archivo CSHTML var myVariable = @"@";
y agréguelo a su diseño <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
use <text></text>
o la forma más fácil @:
@@
debería hacerlo.
@Html.Raw("@")
me parece aún más confiable que @@
, ya que en todos los casos @@
no escapará.
Por lo tanto:
<meta name="twitter:site" content="@twitterSite">
sería:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">