Possível quebra de mudança no MVC4 Razor que pode ser corrigido com “@: @”

Recentemente, atualizei meu site da ASP.NET MVC3 (Razor) para o MVC4 (Razor2) e, ao fazê-lo, encontrei o que pareceu uma mudança no mecanismo de visualização do Razor.

O cenário (bastante simplificado) é mostrado abaixo.

@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>

Isso funciona bem no MVC3 / Razor, no entanto, no MVC4 / Razor2 ostring.Format linha resulta em um erro de:

Palavra-chave "string" inesperada após o caractere "@". Uma vez dentro do código, você não precisa prefixar construções como "string" com "@".

Se você remover o@, o mecanismo de visualização exige que você terminestring.Format linha com um ponto e vírgula. No entanto, o ReSharper então avisa (com razão):

Valor de retorno do método puro não é usado.

As duas correções que encontrei para isso são ou usar<text>:

<text>@string.Format("The value {0}", x)</text>

Ou uma abordagem mais curiosa usando@:@:

@:@string.Format("The value {0}", x)

Esta é uma mudança conhecida e documentada no mecanismo de visualização Razor?

questionAnswers(2)

yourAnswerToTheQuestion