Поддерживается ли это?
Если да, есть ли какой-то трюк, чтобы включить его? Я предполагаю, что Razor не использует новый достаточно компилятор...? VS2015 IDE, кажется, в порядке с ним, но во время выполнения я получаю
CS1056: Неожиданный символ '$'
Поддерживается ли это?
Если да, есть ли какой-то трюк, чтобы включить его? Я предполагаю, что Razor не использует новый достаточно компилятор...? VS2015 IDE, кажется, в порядке с ним, но во время выполнения я получаю
CS1056: Неожиданный символ '$'
Обновление
Начиная с обновления Visual Studio 2015 Update 1, в графическом интерфейсе есть простой процесс, чтобы сделать следующие шаги для вас. Просто щелкните правой кнопкой мыши свой веб-проект и выберите "Включить С# 6/VB 14". Более подробная информация доступна в сообщении в блоге MSDN, Новая функция для включения С# 6/VB 14".
Поскольку этот ответ был написан, эта функциональность была добавлена с помощью пакета NuGet.
Добавьте этот пакет Nuget к вашему решению, если вы используете MVC5.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
Пакет nuget должен изменить ваш web.config, но проверьте, что следующая конфигурация находится в вашем файле web.config(и если он не добавляет его):
  <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>
В MVC6 это встроено.
Оригинальный ответ:
<div>
    @($"Hello {this.Model.SomeProperty}")
</div>
Это работает только в С# 6 с MVC6. Даже если вы используете MVC5 с компилятором С# 6, это не сработает.
Хитрость заключается в том, что анализатор бритвы недостаточно умен, чтобы распознавать некоторые синтаксисы, поэтому вы должны обернуть все это в круглых скобках (вы должны сделать это при использовании оператора с нулевым условием (?.) в ваших бритвах также).
Тем не менее, строка интерполяции в Razor немного багги на данный момент в MVC6, поэтому я не удивлюсь, если возникнут некоторые проблемы. будут ли они адресованы или нет, это другое дело.
Package Manager Console, чтобы добавить в проект необходимого поставщика CodeDom. Он также автоматически изменяет ваш файл web.config, чтобы добавить CodeDom для него необходимые настройки.Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Visual Studio