C# 5 不支持“插值字符串”功能,请使用版本 6 或更高版本。

12
以下代码行在Razor视图中无法编译。
var extPropLookupNameCompania = $"extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}";

然而在控制器中,同样的代码行可以完美运行。

为什么我不能在 Razor 视图中使用字符串插值呢?或者说我需要进行一些配置吗?

3个回答

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

12
如果错误没有消失,安装以下NuGet包可能会有所帮助。PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform - omufeed
1
以下是关于codeDom包的详细信息:http://dusted.codes/using-csharp-6-features-in-aspdotnet-mvc-5-razor-views - tlbignerd
8
我现在使用的是.NET Framework 4.6,但仍然遇到了这个错误。 - Giles Roberts
1
真正的答案在评论中,由@omufeed或tlbignerd提供,而不是标记为答案的内容。 - Saulius
对我有效的方法是安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform。 - Cătălin Rădoi

3
你需要用括号将它封装起来,像这样:

编辑:我更新了,因为少了一个花括号。

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

我成功地尝试了以下内容:

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

我得到了这个:严重性代码描述项目文件行错误CS0019运算符“-”不能应用于类型为“string”的操作数和“string”的操作数。 - Luis Valencia
我在开头添加了一个花括号。现在是否更好?你必须自己检查这件事。这就是为什么我添加了示例的原则。 - Alexander Schmidt
不行,那不起作用,我仍然从第一条评论中得到相同的错误,你的代码行完全正常,但是我的行不通。 - Luis Valencia
{"Compania"}替换为{Compania},这样如何? - Alexander Schmidt

0
关键是要在您的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>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接