Möglicher Breaking Change in MVC4 Razor, der mit "@: @" behoben werden kann
Ich habe kürzlich meine Website von ASP.NET MVC3 (Razor) auf MVC4 (Razor2) aktualisiert und dabei eine Veränderung in der Razor-Ansichts-Engine festgestellt.
Das (stark vereinfachte) Szenario ist unten dargestellt.
@model IEnumerable<string>
@{ Layout = null; }
<!DOCTYPE html>
<html>
<body>
<div>
@foreach (var x in Model)
{
@string.Format("Foo bar: {0}", x) // Errors in MVC4/Razor2
}
</div>
</body>
</html>
Dies funktioniert gut in MVC3 / Razor, jedoch in MVC4 / Razor2string.Format
Zeile führt zu einem Fehler von:
Unerwartetes Schlüsselwort "string" nach dem Zeichen "@". Sobald Sie sich im Code befinden, müssen Sie Konstrukten wie "string" kein "@" voranstellen.
Wenn Sie das entfernen@
fordert die View Engine dann auf, das zu beendenstring.Format
Linie mit einem Semikolon. ReSharper warnt dann jedoch (zu Recht):
Rückgabewert der reinen Methode wird nicht verwendet.
Die beiden Fixes, die ich dafür gefunden habe, sind entweder zu verwenden<text>
:
<text>@string.Format("The value {0}", x)</text>
Oder ein neugierigerer Ansatz mit@:@
:
@:@string.Format("The value {0}", x)
Ist dies eine bekannte und dokumentierte Änderung in der Razor-Ansichts-Engine?