razor - www - Escape @ personaje en la maquinilla de afeitar vista




www asp net mvc mvc4 (10)

@@ 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.

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 '@'?


Acabo de tener el mismo problema. Declaré una variable poniendo mi texto con la @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="twitter:site" content="@twitterSite">

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")



Probé todas las opciones anteriores y ninguna funcionó. Esto es lo que hice que funcionó:

@{
    string str = @"[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,3}$";
}

<td>Email</td>
<td>
   <input type="text" id="txtEmail" required name="email" [email protected] /> 
</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;


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>


@@ 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">




asp.net-mvc-3