Ich habe versucht, die folgende Aussage zu verwenden:
@Html.Test<ISQL>().Nand()
Razor verschluckt sich jedoch an der <vor der ISQL.
Gibt es eine offizielle Lösung dafür?
asp.net-mvc
asp.net-mvc-3
razor
Kidoman
quelle
quelle
Antworten:
Um generische Methoden zu verwenden, müssen Sie den Ausdruck maskieren
quelle
Ich habe diese Frage gerade gefunden, als ich beim Upgrade von mvc nach diesem "gleichen Fehler" gesucht habe.
Ich hatte :
Funktioniert nicht:
@{ ViewBag.Title = "Something " + @Model.Title; var something = (IEnumerable<SelectListItem>)ViewBag.Options; }
Anscheinend wurde die Syntax strenger, und da Sie sich in einem @ {} -Block befinden, sollten Sie im Beispiel kein @ vor Model.Title hinzufügen. Aber der Fehler im Code-Editor zeigte auf das Generikum und machte mich verrückt.
Es funktioniert einwandfrei, wenn der Code kein <> enthält, sondern nur das @ aus Model.Title entfernt wird, um das Problem zu beheben.
Werke:
@{ ViewBag.Title = "Something " + Model.Title; var something = (IEnumerable<SelectListItem>)ViewBag.Options; }
Hoffe das hilft jedem
quelle
Ich schätze, dass diese 'Antwort' etwas spät ist und die Frage offensichtlich zufriedenstellend (und gut) beantwortet wurde. Für zukünftige Besucher dieser Seite gibt es jedoch, wenn Sie nach einem vollständigeren Referenzhandbuch suchen, die MS-Einführung in die Razor-Syntax sowie Phil Haacks sehr nützlichen Razor-Kurzreferenz- Blogbeitrag.
quelle
Ich hatte einen seltsamen Fall, als ich mehrere Aufgaben innerhalb eines
@{ ... }
Bocks hatte.@{ // ... other assignments (without error) List<string> stringList = new List<string>() // ERROR MESSAGE HERE }
Was auch immer ich tat, es gab immer Fehler wie diesen:
Die Lösung : Ich habe die Zuweisungszeile auf einen zweiten
@{ ... }
Block gesetzt .@{ // ... other assignments } @{ List<string> stringList = new List<string>() // WORKS }
quelle
Es geht um das @ -Zeichen. Dieses Beispiel funktioniert vor dem Upgrade
@{ string @class = ViewBag.@class; IDictionary<string, object> htmlAttributes = new Dictionary<string, object>(); }
Nach dem Upgrade muss es in zwei Blöcke aufgeteilt werden
@{ string @class = ViewBag.@class; } @{ IDictionary<string, object> attrs = new Dictionary<string, object>(); }
quelle