Строковая интерполяция в представлении «Бритва»?
Поддерживается ли это?
Если да, есть ли какой-то трюк, чтобы включить его? Я предполагаю, что Razor не использует новый достаточно компилятор …? VS2015 IDE, кажется, в порядке с ним, но во время выполнения я получаю
CS1056: Неожиданный символ ‘$’
- DropDownList в MVC 4 с Razor
- Файлы IntelliSense в Razor (.cshtml) перестали работать
- Преобразование формата DateTime с использованием бритвы
- Бритва: декларативные HTML-помощники
- Ошибка Visual Studio 2015 «Ссылка на объект не установлена в экземпляр объекта» после установки ASP.NET и веб-инструментов 2015 (RC1 Update 1)
- Лучший способ получить ссылку на главную страницу MVC 3 Razor
- Как получить текущий URL страницы в MVC 3
- Razor / CSHTML - Любая польза от того, что у нас есть?
- Visual Studio 2015 Сломанная razor Intellisense
- Условно измените class CSS в режиме Razor
- Можно ли получить доступ к объекту MVC ViewBag из файла Javascript?
- Установить отключить атрибут на основе условия для Html.TextBoxFor
- В представлении на основе Razor не отображаются ссылочные сборки
Обновление :
Начиная с версии 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, поэтому я не удивлюсь, если возникнут некоторые проблемы. независимо от того, будут ли они решаться, это другой вопрос.
-
Запустите следующую команду в
Package Manager Console
чтобы добавить в проект необходимого поставщикаCodeDom
. Он также автоматически модифицирует файлweb.config
чтобы добавить вCodeDom
параметры.Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
- Перезапустите
Visual Studio
Примечание. Как отметил @Jake в своем комментарии в этом ответе, если у вас уже
DotNetCompilerPlatform
пакетDotNetCompilerPlatform
, попробуйте его обновить.