Możliwa zmiana w maszynce MVC4, którą można naprawić za pomocą „@: @”
Niedawno zaktualizowałem moją witrynę z ASP.NET MVC3 (Razor) do MVC4 (Razor2) i dzięki temu znalazłem coś, co wyglądało na przełomową zmianę w silniku Razor.
Scenariusz (znacznie uproszczony) pokazano poniżej.
@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>
Działa to dobrze w MVC3 / Razor, jednak w MVC4 / Razor2 thestring.Format
wiersz powoduje błąd:
Nieoczekiwane słowo kluczowe „string” po znaku „@”. Po wprowadzeniu kodu nie musisz prefiksować konstrukcji takich jak „string” za pomocą „@”.
Jeśli usuniesz@
, silnik widoku wymaga, abyś zakończył działaniestring.Format
linia ze średnikiem. Jednak ReSharper ostrzega (słusznie):
Wartość zwrotna czystej metody nie jest używana.
Dwie poprawki, które znalazłem, są albo używane<text>
:
<text>@string.Format("The value {0}", x)</text>
Lub bardziej interesujące podejście@:@
:
@:@string.Format("The value {0}", x)
Czy to znana i udokumentowana zmiana w silniku Razor?