Helpers - компьютеры, интернет, программирование

Невозможно использовать интерполированные строки в cshtml

Я получаю эту досадную ошибку при попытке использовать простую интерполированную строку в моем файле cshtml:

@for (int i = 0; i < ppTitles.Count; i++)
{
    <p>@ResourceLibrary.Resources.GetString($"PP_Text_{i + 1}")</p>
}

Функция «интерполированные строки» недоступна в C# 5. Используйте языковую версию 6 или более позднюю.

Я пробовал все решения здесь

  • Получил языковую версию в web.config
  • Пробовал окружить строку @()
  • Обновил проект до 4.5.2

и здесь

  • Изменена языковая версия с default на 6
  • Установлен CodeDome с Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Я использовал интерполяцию строк в других областях проекта (в обычных файлах .cs) без каких-либо проблем.

Что здесь происходит?


  • Отметьте Сборка => Расширенные настройки сборки. Целевая платформа уже обновлена, но языковая версия может быть еще не обновлена ​​для использования C# 6 (stackoverflow.com/questions/35686990/). 20.09.2017
  • Какая версия ВС? 20.09.2017
  • связанные: stackoverflow.com/questions/30832659/ 20.09.2017
  • возможно, вам следует установить Microsoft.CodeDom.Providers.DotNetCompilerPlatform 20.09.2017
  • проверьте эту ссылку Это помогает решить ту же проблему 02.06.2018
  • проверьте эту ссылку Это помогает решить ту же проблему 02.06.2018
  • @ Бэсси, мой ответ решил твою проблему? 13.06.2019

Ответы:


1

При использовании C# 5 или более ранней версии интерполированные строки недоступны из коробки, и вам потребуется установить пакет NuGet для поддержки этого. Обратите внимание, что (как указано в ошибке) это включено из коробки в C# 6 и выше.

Вам потребуется установить пакет NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform в свой веб-проект (или любой другой проект, содержащий ваши представления).

Этот пакет добавит поддержку интерполированных строк (а также улучшит производительность компиляции). Если установка пакета не добавила следующее в конфигурацию вашего 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=\&quot;Web\&quot; /optionInfer+"/>
</compilers>
</system.codedom>
27.02.2019
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..