Ich erstelle eine Beispiel-ASP.NET MVC 3-Site mit Razor als Ansichtsmodul. Die Rasierersyntax beginnt mit einem @
Zeichen, z @RenderBody()
. Wenn ich @test auf meine cshtml-Seite schreibe, erhalte ich einen Analysefehler
CS0103: Der Name 'test' existiert im aktuellen Kontext nicht
Wie entkomme ich dem Zeichen '@'?
razor
asp.net-mvc-3
ajay_whiz
quelle
quelle
@
in Klammern zu setzen. Ich habe es geschafft, dies zum@(@new)
Antworten:
@@
Sollte es tun.quelle
@RazorCodePart1 @@ @RazorCodePart2
zB ein Literal @ zwischen zwei Razor-Codefragmenten.<style>
Tag auf meiner Rasierseite, das eine '@media {}' - Direktive einbetten muss, daher ist eine HTML-Codierung keine Option. nur @@ funktioniert.Razor @ Escape Char zu Symbolen ...
oder
quelle
verwenden
<text></text>
oder den einfacheren Weg@:
quelle
@Html.Raw("@")
scheint mir noch zuverlässiger zu sein als@@
, da nicht in allen fällen@@
entkommen wird.Deshalb:
wäre:
quelle
Anstelle einer HTML-Entität bevorzuge ich die Verwendung von
@Html.Raw("@")
.quelle
@@ ist das Escape-Zeichen für @ in Razor-Ansichten, wie oben angegeben.
Razor versucht jedoch herauszufinden, wann ein '@' nur ein '@' ist und wo es C # (oder VB.Net) -Code markiert. Eine der Hauptanwendungen hierfür ist die Identifizierung von E-Mail-Adressen in einer Razor-Ansicht. Es sollte nicht erforderlich sein, das @ -Zeichen in einer E-Mail-Adresse zu maskieren.
quelle
Für die Frage zu
@RazorCodePart1 @@ @RazorCodePart2
benötigen Sie die Reihenfolge:Ich weiß, es sieht ein bisschen seltsam aus, aber es funktioniert und bringt Ihnen das Literalzeichen '@' zwischen den Codeblöcken.
quelle
Ich hatte gerade das gleiche Problem. Ich habe eine Variable deklariert, die meinen Text mit dem @ verbindet.
quelle
diese Arbeit für mich
Oder Sie können verwenden: @@ Alan_van_Buuren
: D.
quelle
Sie können @@ für diesen Zweck verwenden. Mögen
var email = firstName + '\@@' + domain;
quelle
Fügen Sie einfach eine Variable in die CSHTML-Datei ein
var myVariable = @"@";
und fügen Sie es Ihrem Layout hinzu
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
quelle
Ich habe alle oben genannten Optionen ausprobiert und keine hat funktioniert. Das habe ich getan, was funktioniert hat:
Ich habe eine String-Variable erstellt und den gesamten RegEx-Mustercode übergeben, dann die Variable im HTML-Code verwendet, und Razor war cool damit.
quelle
Ich konnte keines davon in meinem Platzhalterattribut zum Laufen bringen, daher habe ich ein XML-Sonderzeichen verwendet.
Weitere Beispiele finden Sie hier. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
quelle
Eigentlich sollte @ mit den Razor-Syntax-Schlüsselwörtern oder mit der Variablen / dem Modell verwendet werden, um einen Wert zu binden.
Zum Beispiel: Wenn dem Test der Wert ie @ {var test = "ABC"} zugewiesen ist, können Sie den Wert durch Einstellungen abrufen, da @test überall eine cshtml-Seite im HTML-Teil ist. Andernfalls einfach als @ Html.DisplayName ("test") verwenden.
quelle
Ich weiß, dass diese Frage alt ist, aber ich habe alle oben genannten Fragen ausprobiert und es hat mir nicht geholfen, dem Zeichen "@" in ASP.NET Full Framework (MVC 5) innerhalb einer URL zu entkommen. Basierend auf der Antwort von Terje Solem
%40
funktionierte der UTF-8-Code für mich. Dies ist die ursprüngliche URL, die ich erreichen wollte:https://unpkg.com/@google/[email protected]/dist/markerclustererplus.min.js
und mit dem Code darin:
quelle