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

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

Если да, есть ли какой-то трюк, чтобы включить его? Я предполагаю, что 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 , попробуйте его обновить.

  • Как создать текстовое поле readonly в ASP.NET MVC3 Razor
  • Замените символы разрыва строки с помощью в представлении ASP.NET MVC Razor
  • Использование расширений MVC HtmlHelper из декларативных представлений Razor
  • Загрузка файла MVC 3 и привязка к модели
  • Razor: @ Html.Partial () vs @RenderPage ()
  • Выполнение проверки на стороне клиента для пользовательского атрибута
  • Нужно ли автозаполнение механизма просмотра бритвы работать в библиотеке classов?
  • Почему привязка модели не работает в моем методе POST-действия?
  • ASP.NET MVC 3: переопределить атрибут «name» с помощью TextBoxFor
  • Как реализовать пользовательский RazorViewEngine для поиска представлений в нестандартных местах?
  • Флажок для nullable boolean
  • Interesting Posts

    Могут ли браузеры изменять URL-адреса сохраненных закладок в ответ на 301 переадресацию?

    Есть ли константа Newline, определенная в Java, например Environment.Newline в C #?

    7-zip и Windows 7: дважды выберите «Извлечь в <папку>» по умолчанию

    Сделать папку доступа в первый раз быстрее

    Есть ли способ переместить c: \ program files в другом месте?

    Как проверить, нужна ли моей системе больше мощности блока питания?

    Как передать текущий элемент методу Java, нажав гиперссылку или кнопку на странице JSP?

    Щелкните правой кнопкой мыши по выходу мыши Проводник Windows

    Как вы повторяете каждый каталог / каталог рекурсивно в стандартном C ++?

    MEF против любого IoC

    Карта данных JSON для нокаута наблюдаемого массива с определенным видом типа модели

    XPath с пространством имен в Java

    Что означает свойство страницы AutoEventWireUp?

    Как вы применяете ограничения внешнего ключа в SQLite через Java?

    Драйверы Lenovo ThinkPad T61 для миграции Vista в Windows 7

    Давайте будем гением компьютера.