Interpolazione a stringa in una vista Razor?

Questo è supportato?

Se è così, c’è qualche trucco per abilitarlo? Suppongo che Razor non stia usando un compilatore abbastanza nuovo …? L’IDE VS2015 sembra funzionare bene ma a runtime sto ottenendo

CS1056: carattere imprevisto ‘$’

Aggiornamento :

A partire dall’aggiornamento 1 di Visual Studio 2015, è disponibile un semplice processo nella GUI per eseguire i passaggi seguenti. È sufficiente fare clic con il pulsante destro del mouse sul progetto Web e selezionare “Abilita C # 6 / VB 14″. Ulteriori informazioni sono disponibili sul post del blog MSDN, ” Nuova funzionalità per abilitare C # 6 / VB 14 “.

Poiché questa risposta è stata scritta, questa funzionalità è stata aggiunta con l’assistenza di un pacchetto NuGet.

Aggiungi questo pacchetto Nuget alla tua soluzione se usi MVC5.

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

Il pacchetto nuget dovrebbe modificare il tuo web.config, ma controlla che la seguente configurazione sia nel tuo file web.config (e se non lo si aggiunge):

      

In MVC6, questo è integrato.


Risposta originale:

 
@($"Hello {this.Model.SomeProperty}")

Funziona solo in C # 6 con MVC6. Anche se stai eseguendo MVC5 con il compilatore C # 6, non funzionerà.

Il trucco è che il parser del razor non è abbastanza intelligente da riconoscere ancora alcune syntax, quindi è necessario racchiudere il tutto tra parentesi (è necessario farlo quando si utilizza l’operatore condizionale nullo ( ?. ) Anche nelle visualizzazioni del razor).

Detto questo, l’interpolazione delle stringhe in Razor è un po ‘ buggata al momento in MVC6, quindi non sarei sorpreso se ci fossero alcuni problemi con esso. se saranno affrontati o meno è un’altra questione.

  1. Eseguire il comando seguente nella Package Manager Console per aggiungere un provider CodeDom richiesto al progetto. Inoltre, modifica automaticamente il file web.config per aggiungere a CodeDom impostazioni necessarie.

    Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform


  1. Riavvia Visual Studio

Nota: come @Jake ha menzionato nel suo commento sotto questa risposta, se hai già il pacchetto DotNetCompilerPlatform , quindi prova ad aggiornarlo.