Функция "интерполированные строки" недоступна в C# 5. Пожалуйста, используйте язык версии 6 или выше.
следующая строка не компилируется, когда я помещаю представление Razor.
var extPropLookupNameCompania = $"extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}";
однако в контроллере одна и та же строка работает отлично.
почему я не могу интерполировать строку пользователя в представлениях razor? или может мне нужно что-то настроить?
3 ответов
вы должны инкапсулировать его с помощью фигурных скобок, как это:
EDIT: я обновился, потому что отсутствовал фигурный.
var extPropLookupNameCompania = $("{extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}");
Я успешно попробовал следующее:
@($"It is {DateTime.Now}")
ключ должен увидеть compilerOptions= " / langversion:6 часть следующего в вашем интернете.конфиг. Без него я получил ошибки, пытаясь использовать строковую интерполяцию внутри a .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>