2015-08-05 10 views
10

La riga seguente non viene compilata quando inserisco una vista a rasoio.La funzione "stringhe interpolate" non è disponibile in C# 5. Utilizzare la lingua versione 6 o successiva.

var extPropLookupNameCompania = $"extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}"; 

Tuttavia nel controller la stessa linea funziona perfettamente.

Perché non posso eseguire l'interpolazione delle stringhe utente sulle visualizzazioni del rasoio? o forse ho bisogno di configurare qualcosa?

risposta

2

Se si verifica questo errore in un progetto di .NET Framework 4.5.1, l'aggiornamento a 4.5.2 risolve il problema.

+6

Se l'errore non scompare, l'installazione del seguente pacchetto NuGet può essere d'aiuto. 'PM> Pacchetto di installazione Microsoft.CodeDom.Providers.DotNetCompilerPlatform' – omufeed

+1

Ecco alcuni dettagli sul pacchetto codeDom: http://dusted.codes/using-csharp-6-features-in-aspdotnet-mvc-5-razor -visure – tlbignerd

+7

Sono su .NET Framework 4.6 e ottengo ancora questo errore. –

2

dovete incapsulare con bretelle come questo:

EDIT: ho aggiornato perché c'era un riccio mancante.

var extPropLookupNameCompania = $("{extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}"); 

Ho provato quanto segue con successo:

@($"It is {DateTime.Now}") 
+0

ottengo questo: gravità \t Codice \t Descrizione \t Progetto \t File \t linea errore \t CS0019 \t operatore '-' non può essere applie d agli operandi di tipo 'stringa' e 'stringa' –

+0

Ho aggiunto una parentesi graffa all'inizio. È meglio adesso? Devi controllare la cosa da solo. Ecco perché ho aggiunto il campione principale. – sprinter252

+0

nop, che non funziona, ho ancora lo stesso errore dal primo commento, la tua linea funziona perfettamente, ma il mio non funziona. –

0

La chiave è quello di vedere i compilerOptions = "/ langversion:.. 6 porzione quanto segue nel web.config Senza di essa ho ottenuto gli errori che cercano di usare interpolazione di stringhe all'interno di un file .cshtml

<system.codedom> 
 
    <compilers> 
 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> 
 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> 
 
    </compilers> 
 
    </system.codedom>

Problemi correlati