ti-enxame.com

Fuga @ personagem no motor de visão de navalha

Estou criando um exemplo de site ASP.NET MVC 3 usando o Razor como mecanismo de visualização. A sintaxe de navalha começa com o caracter @, e. @RenderBody(). Se eu escrevo @test na minha página cshtml, isso me dá erro de análise

CS0103: O nome 'teste' não existe no contexto atual

Como faço para escapar do personagem '@'?

517
ajay_whiz

@@ deve fazê-lo.

830
Tobiasopdenbrouw

Razor @ escape char para símbolos ...

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

ou

<img src="..." alt="Find me on Twitter as @("@")username" />
133
Emre Karahan

use <text></text> ou a maneira mais fácil @:

37
Kasper Skov

@Html.Raw("@") parece-me ainda mais confiável que @@, já que em nenhum caso @@ irá escapar.

Assim sendo:

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

seria:

<meta name="Twitter:site" content="@Html.Raw("@")twitterSite">
32
Rosue Don-Chip Walford

Em vez de entidade HTML, prefiro o uso de @ Html.Raw ("@")

18
CLRBTH

@@ é o caractere de escape para @ nas visualizações do Razor, conforme indicado acima.

No entanto, o Razor tenta descobrir quando um '@' é apenas um '@' e onde ele marca o código C # (ou VB.Net). Um dos principais usos para isso é identificar endereços de e-mail dentro de uma visão Razor - não deve ser necessário escapar do caractere @ em um endereço de e-mail.

12
Alfamale

Para a pergunta sobre @RazorCodePart1 @@ @RazorCodePart2, você precisa da sequência:

@RazorCodePart1 @:@@ @RazorCodePart2

Eu sei, parece um pouco estranho, mas funciona e você obterá o caractere literal '@' entre os blocos de código.

8
DragonDTG

Eu acabei de ter o mesmo problema. Eu declarei uma variável colocando meu texto com o @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="Twitter:site" content="@twitterSite">
6
watfy

esse trabalho pra mim

<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">

Ou você pode usar: @@ Alan_van_Buuren

: D

4
Alan

Eu tentei todas as opções acima e nenhuma funcionou. Isto é o que eu fiz que funcionou:

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

Eu criei uma variante de string e passei todo o código de padrão RegEx para ela, então usei a variável no html, e o Razor ficou legal com ela.

1
folorunso joseph

Você pode usar @@ para esse propósito. Como var email = firstName + '\@@' + domain;

1
Abdus Salam Azad

basta adicionar uma variável no arquivo CSHTML var myVariable = @"@"; </ code>

e adicione-o ao seu layout <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span> </ code>

1
Speedyjet

Na verdade, @ deve ser usado com as palavras-chave da sintaxe Razor ou com a variável/modelo para vincular um valor.

Por exemplo: se o teste é atribuído com valor, ou seja, @ {var test = "ABC"}, então você pode obter o valor por configurações como @test em qualquer lugar é a página cshtml na parte html. caso contrário, o uso simples como @ Html.DisplayName ("test")

0
Pavithra

Eu não consegui fazer nada disso funcionar dentro do meu atributo de espaço reservado, então usei o caractere especial xml.

<input type="text" placeholder="fex: firstname&#64;lastname.com"/>

Veja mais exemplos aqui. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html

0
Terje Solem