Flucht @ -Zeichen in Rasierapparat Ansicht Motor
-
26-09-2019 - |
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 '@'?
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@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")