Razor Ansicht Syntax erkennt nicht die „@“ in einem HTML-Attribut
-
09-10-2019 - |
Frage
Ich bin ein Projekt von MVC 2 bis MVC3 und die Rasierer-Ansicht-Engine migrieren.
In MVC 2, würde ich die folgende html hat:
<div id="del_<%= Model.ActivityID.ToString() %>"></div>
Wenn Rasiermesser, habe ich versucht, die folgende, die den wörtlichen Text macht „del_@Model.ActivityID.ToString ()“, wenn ich del_1 wollen.
<div id="del_@Model.ActivityID.ToString()"></div>
Um das Problem zu umgehen, habe ich:
<div id="@Model.ActivityID.ToString()_del"></div>
Gibt es weg Rasierapparat Arbeit mit dieser Syntax zu machen?
<div id="del_@Model.ActivityID.ToString()"></div>
Lösung
Sie werden den @()
um Ihr spezielles Modell Wert wie so verwenden müssen:
<div id="del_@(Model.ActivityID.ToString())"></div>
Der Grund dafür ist, weil die del_@Model.ActivityID
sieht aus wie eine E-Mail-Adresse an den Parser und standardmäßig die Parser versuchen E-Mail-Adressen ignorieren und so muss man nicht etwas tut dumm wie john@@doe.com
wie E-Mails häufig genug sind, es wäre ärgerlich jedes Mal zu tun. Also die Leute auf dem Rasierer Parser arbeiten dachte nur: „Wenn es wie eine E-Mail aussieht, ignorieren“. Also, warum Sie dieses besondere Problem haben.
Andere Tipps
<div id="del_@(Model.ActivityID.ToString())"></div>
Falls Sie nicht sehen, den Trick: Verwendung @( )