Frage

Ich erstelle eine Probe ASP.NET MVC 3 Website mit Razor als Ansicht Motor. Die Rasierer Syntax beginnt mit @ Charakter z.B. @RenderBody(). Wenn ich @Test auf meiner cshtml Seite schreibe es gibt mir Parse-Fehler

  

CS0103: Der Name 'test' existiert nicht im aktuellen Kontext

Wie kann ich entkommen Zeichen '@'?

War es hilfreich?

Lösung

@@ sollte es tun.

Andere Tipps

Razor @ Escape-Zeichen zu Symbolen ...

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

oder

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

Verwendung <text></text> oder der einfachere Weg @:

@Html.Raw("@") mir scheint zuverlässiger zu sein, auch als @@, da nicht in allen Fällen @@ entweicht.

Deshalb:

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

wäre:

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

Anstelle von HTML-Entität ziehe ich die Verwendung von @Html.Raw("@").

@@ ist die Escape-Zeichen für @ in Razor Ansichten wie oben angegeben.

Razor wird jedoch versuchen, zu arbeiten, wenn ein ‚@‘ ist nur ein ‚@‘ und, wo es Marken C # (oder VB.Net) Code. Eine der wichtigsten Verwendungen dafür ist, um E-Mail-Adressen innerhalb einer Razor Ansicht zu identifizieren - es sollte nicht notwendig sein, das @ -Zeichen in einer E-Mail-Adresse zu entkommen.

Für die Frage nach @RazorCodePart1 @@ @RazorCodePart2, müssen Sie die Reihenfolge:

@RazorCodePart1 @:@@ @RazorCodePart2

ich weiß, es sieht ein wenig seltsam, aber es funktioniert und erhalten Sie den wörtlichen Charakter bekommen ‚@‘ zwischen den Codeblöcken.

ich das gleiche Problem nur hatte. Ich erklärte eine Variable setzt meinen Text mit dem @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

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

diese Arbeit für mich

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

Oder können Sie: @@ Alan_van_Buuren

: D

Ich habe versucht, alle oben genannten Optionen und keine gearbeitet. Dies ist, was ich tat, war:

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

Ich habe eine Zeichenfolge varible und hat alle Muster RegEx Code hinein, dann die Variable im HTML verwendet, und Razor war cool mit ihm.

Sie können zu diesem Zweck verwenden @@. Wie var email = firstName + '\@@' + domain;

fügen Sie einfach eine Variable in CSHTML Datei var myVariable = @"@";

und fügen Sie es zu Ihrem Layout <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

Ich konnte nicht von diesen an die Arbeit in meinem Platzhalter Attribut, so dass ich xml Sonderzeichen verwendet.

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

Sehen Sie hier weitere Beispiele. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F. html

Eigentlich @ sollte mit der Razor-Syntax Keywords oder auf die Variable / Modell verwendet werden, um einen Wert zu binden.

Zum Beispiel: wenn der Test wird mit dem Wert zugewiesen d.h @ {var test = "ABC"} dann können Sie den Wert von Einstellungen erhalten wie @Test überall cshtml Seite im HTML-Teil ist. andernfalls einfache Verwendung als @ Html.DisplayName ( "test")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top