The following line does not compile when I put in a Razor View.
var extPropLookupNameCompania = $\"extension_{SettingsHelper.ClientId.Replace(\"-\", \"\")}_{
The key is to see the compilerOptions="/langversion:6 portion of the following in your web.config. Without it I got errors trying to use string interpolation inside a .cshtml file.
<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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
If you are experiencing this error in a .NET Framework 4.5.1 project, upgrading to 4.5.2 solves the problem.
You have to encapsulate it with braces like this:
EDIT: I updated because there was a missing curly.
var extPropLookupNameCompania = $("{extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}");
I tried the following successfully:
@($"It is {DateTime.Now}")