当我放入Razor View时,以下行无法编译。
var extPropLookupNameCompania = $"extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}";
然而,在控制器中,同一条线路完全正常。
为什么我不能在剃刀视图上进行用户字符串插值?或者我可能需要配置一些东西?
答案 0 :(得分:3)
如果您在.NET Framework 4.5.1项目中遇到此错误,升级到4.5.2可以解决问题。
答案 1 :(得分:2)
你必须用这样的大括号封装它:
编辑:我更新了,因为卷曲了。
var extPropLookupNameCompania = $("{extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}");
我成功尝试了以下内容:
@($"It is {DateTime.Now}")
答案 2 :(得分:-1)
关键是要在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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>