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?

questionAnswers(2)

yourAnswerToTheQuestion