Question

Je suis en train de créer un échantillon ASP.NET MVC 3 site en utilisant rasoir moteur de vue. La syntaxe de rasoir commence par caractère, par exemple @ @RenderBody(). Si je vous écris @test sur ma page cshtml il me donne l'erreur Parse

  

CS0103: Le nom 'test' n'existe pas dans le contexte actuel

Comment puis-je échapper à caractère '@'?

Était-ce utile?

La solution

@@ devrait le faire.

Autres conseils

Razor @ évasion char symboles ...

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

ou

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

utilisation <text></text> ou @: façon plus facile

@Html.Raw("@") me semble être encore plus fiable que @@, puisque non dans tous les cas @@ échappera.

Par conséquent:

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

serait:

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

Au lieu de l'entité HTML je préfère l'utilisation de @Html.Raw("@").

@@ est le caractère d'échappement pour @ dans les vues de rasoir comme indiqué ci-dessus.

Razor tente cependant de travailler quand un « @ » est juste un « @ » et où les marques du code C # (ou VB.Net). L'une des principales utilisations de c'est d'identifier les adresses e-mail dans une vue Razor - il ne devrait pas être nécessaire pour échapper au caractère @ dans une adresse e-mail.

Pour la question sur @RazorCodePart1 @@ @RazorCodePart2, vous devez la séquence:

@RazorCodePart1 @:@@ @RazorCodePart2

Je sais, il semble un peu bizarre, mais cela fonctionne et vous obtiendrez le caractère littéral « @ » entre les blocs de code.

Je viens d'avoir le même problème. Je déclarais une variable de mettre mon texte avec le @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

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

ce travail pour moi

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

Vous pouvez aussi utiliser: @@ Alan_van_Buuren

: D

J'ai essayé toutes les options ci-dessus et aucun travaillé. Voilà ce que je l'ai fait travaillé:

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

Je créé une varible chaîne et a passé tout le code de modèle RegEx dans, puis utilisé la variable dans le code html et Razor était cool avec elle.

Vous pouvez utiliser @@ à cet effet. Comme var email = firstName + '\@@' + domain;

il suffit d'ajouter une variable dans le fichier CSHTML var myVariable = @"@";

et l'ajouter à votre mise en page <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

Je ne pouvais pas obtenir l'un de ces travaux à l'intérieur de mon attribut d'espace réservé, donc je xml caractère spécial.

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

Voir d'autres exemples ici. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F. html

En fait @ doit être utilisé avec le rasoir de mots-clés ou à la variable / modèle pour lier une valeur.

Pour exemple: si le test est affecté à la valeur i.e. @ {var test = "ABC"} alors vous pouvez obtenir la valeur par des paramètres comme @test partout la page cshtml en partie html. sinon, l'utilisation simple @ Html.DisplayName ( "test")

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top