Строковая интерполяция в представлении «Бритва»?

Поддерживается ли это?

Если да, есть ли какой-то трюк, чтобы включить его? Я предполагаю, что Razor не использует новый достаточно компилятор …? VS2015 IDE, кажется, в порядке с ним, но во время выполнения я получаю

CS1056: Неожиданный символ ‘$’

Обновление :

Начиная с версии Visual Studio 2015 Update 1, в графическом интерфейсе есть простой процесс, чтобы сделать следующие шаги для вас. Просто щелкните правой кнопкой мыши свой веб-проект и выберите «Включить C # 6 / VB 14». Более подробная информация доступна на блоге MSDN в блоге « Новая функция для включения C # 6 / VB 14 ».

Поскольку этот ответ был написан, эта функциональность была добавлена ​​с помощью пакета NuGet.

Добавьте этот пакет Nuget к вашему решению, если вы используете MVC5.

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

Пакет nuget должен изменить ваш web.config, но проверьте, что следующая конфигурация находится в файле web.config (и если она не добавляется):

      

В MVC6 это встроено.


Оригинальный ответ:

 
@($"Hello {this.Model.SomeProperty}")

Это работает только в C # 6 с MVC6. Даже если вы используете MVC5 с компилятором C # 6, это не сработает.

Хитрость заключается в том, что анализатор бритвы недостаточно умен, чтобы распознавать некоторые синтаксисы, поэтому вы должны обернуть все это в круглые скобки (это необходимо сделать при использовании оператора с нулевым условием ( ?. ) В представлениях бритвы).

Тем не менее, интерполяция строк в Razor на данный момент немного глючит в MVC6, поэтому я не удивлюсь, если возникнут некоторые проблемы. независимо от того, будут ли они решаться, это другой вопрос.

  1. Запустите следующую команду в Package Manager Console чтобы добавить в проект необходимого поставщика CodeDom . Он также автоматически модифицирует файл web.config чтобы добавить в CodeDom параметры.

    Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform


  1. Перезапустите Visual Studio

Примечание. Как отметил @Jake в своем комментарии в этом ответе, если у вас уже DotNetCompilerPlatform пакет DotNetCompilerPlatform , попробуйте его обновить.

  • MVC Razor рассматривает вложенную модель foreach
  • ASP.Net MVC - ресурс Не удается найти ошибку
  • asp.net MVC3 razor: отображение actionlink на основе роли пользователя
  • Добавление classа css для выбора с помощью @ Html.DropDownList ()
  • Где я могу найти System.Web.Helpers, System.Web.WebPages и System.Web.Razor?
  • Действие Изображение MVC3 Razor
  • Добавить файлы CSS или JavaScript в макет из представлений или частичных представлений
  • Модель ASP.NET MVC Razor для макета
  • Как использовать тернарный оператор в бритве (в частности, для атрибутов HTML)?
  • Определите, является ли загруженный файл изображением (любым форматом) в MVC
  • Метод Razor ViewEngine HTML.Checkbox создает скрытый ввод. Зачем?
  • Давайте будем гением компьютера.