Pergunta

Estou criando um site de amostra ASP.NET MVC 3 usando o Razor como Motor View. A sintaxe da navalha começa com @ personagem por exemplo @RenderBody(). Se eu escrever @test na minha página cshtml, ele me dá um erro de análise

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

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

Foi útil?

Solução

@@ deve fazer isso.

Outras dicas

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

usar <text></text> ou da maneira mais fácil @:

@Html.Raw("@") parece -me ser ainda mais confiável do que @@, já que não em todos os casos @@ vai escapar.

Portanto:

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

seria:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">

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

@@ é o caractere de fuga para @ em vistas de barbear, conforme declarado acima.

O Razor, no entanto, tenta se exercitar quando um '@' é apenas um '@' e onde marca o código C# (ou vb.net). Um dos principais usos para isso é identificar endereços de email em uma visualização de barbear - não deve ser necessário escapar do caractere @ em um endereço de email.

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

@RazorCodePart1 @:@@ @RazorCodePart2

Eu sei, parece um pouco estranho, mas funciona e lhe dará o personagem literal '@' entre os blocos de código.

Eu só tive o mesmo problema. Eu declarei uma variável colocando meu texto com o @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

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

Este trabalho para mim

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

Ou yoy pode usar: @@ alan_van_buuren

: D

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

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

Criei uma varível de string e passei todo o código do padrão Regex para ele, depois usei a variável no HTML, e Razor foi legal com ele.

Você pode usar @@ para esse fim. Curti var email = firstName + '\@@' + domain;

Basta adicionar uma variável no arquivo cshtml var myVariable = @"@";

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

Eu não conseguia que nenhum deles funcionasse dentro do meu atributo de espaço reservado, então usei o personagem especial XML.

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

Veja mais exemplos aqui.https://www.dvteclipse.com/documentation/svliner/how_to_use_special_characters_in_xml.3f.html

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

Para por exemplo: se o teste for atribuído com valor ie @ {var test = "abc"}, você poderá obter o valor por configurações como @test em qualquer lugar é a página cshtml na parte html. Caso contrário, use simples como @html.displayname ("teste")

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top