683 Stimmen

Escape @ Zeichen in der Razor View Engine

Ich erstelle eine Beispielsite für ASP.NET MVC 3 mit Razor als View Engine. Die Razor-Syntax beginnt mit @ Zeichen z.B. @RenderBody() . Wenn ich @test auf meine cshtml-Seite schreibe, erhalte ich einen Parse-Fehler

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

Wie entferne ich das Zeichen '@'?

1 Stimmen

In C# können Sie Schlüsselwörter mit einem @ markieren, um sie als Variablennamen und nicht als Schlüsselwörter zu behandeln. Nach allem, was ich weiß, scheint es unmöglich, reservierte Schlüsselwörter in Razor auf diese Weise zu verwenden.

1 Stimmen

@GrimaceofDespair die Möglichkeit, Schlüsselwörter trotzdem als Variablen zu kennzeichnen, besteht darin, die zweite @ in Klammern. Ich habe es so hinbekommen, indem ich es so geschrieben habe: @(@new)

1voto

folorunso joseph Punkte 147

Ich habe alle oben genannten Optionen ausprobiert, aber keine hat funktioniert. Dies ist, was ich tat, die funktioniert:

@{
    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 erstellte eine String-Variable und übergab den gesamten RegEx-Mustercode an sie, dann verwendete ich die Variable in der HTML-Datei, und Razor war damit einverstanden.

1voto

Abdus Salam Azad Punkte 4050

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

1voto

Speedyjet Punkte 51

Fügen Sie einfach eine Variable in die CSHTML-Datei ein `var myVariable = @"@";`

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

1voto

Terje Solem Punkte 746

Ich konnte keines dieser Zeichen in meinem Platzhalter-Attribut verwenden, also habe ich xml-Sonderzeichen verwendet.

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

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

-1voto

Pavithra Punkte 21

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

Zum Beispiel: wenn test ein Wert zugewiesen wird d.h. @ { var test = "ABC" } dann können Sie den Wert durch die Einstellungen als @test irgendwo auf einer cshtml-Seite im html-Teil erhalten. Ansonsten einfach als @Html.DisplayName("test") verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X