功能 'interpolated strings' 在 C# 5 中不可用。请使用语言版本 6 或更高版本。

Feature 'interpolated strings' is not available in C# 5. Please use language version 6 or greater.

当我放入 Razor 视图时,以下行无法编译。

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

然而在控制器中,同一行工作得很好。

为什么我不能在剃须刀视图上进行用户字符串插值?或者也许我需要配置一些东西?

你必须像这样用大括号封装它:

编辑:我更新是因为缺少卷曲。

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

我成功地尝试了以下操作:

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

如果您在 .NET Framework 4.5.1 项目中遇到此错误,升级到 4.5.2 可以解决问题。

关键是要在您的 web.config 中查看以下的 compilerOptions="/langversion:6 部分。没有它,我在尝试在 .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>