Ошибка Razor intellisense: функция «метод расширения» не может использоваться, поскольку она не является частью спецификации языка ISO-2 C #

objective:

  • Используйте шаблоны cshtml Razor для форматирования данных
  • Вставить cshtml шаблоны Razor в библиотеку classов в виде Embedded Resources
  • Использование операторов Linq и методов расширения в шаблоне cshtml

Я создал новый проект библиотеки classов, а затем адаптировал инструкции Скотта Хансельмана о том, как интегрировать MVC3 в приложение WebForms, чтобы заставить его работать в библиотеке classов. Затем я использую пакет NuGet RazorEngine для применения шаблона к объекту.

До сих пор он отлично работает с одним икотой : intellisense не распознает инструкции Linq или методы расширения (довольно важную часть MVC) при редактировании файлов cshtml.

Итак, для следующего файла cshtml:

 @model Customer[] @Model.Count() @if (Model.Where(customer => customer.Type == 'New').Any()) { Found at least one new customer. } 

… он отображает следующие ошибки:

Feature 'extension method' cannot be used because it is not part of the ISO-2 C# language specification

Feature 'lambda expression' cannot be used because it is not part of the ISO-2 C# language specification

Кто-нибудь знает, что мне не хватает? Заранее благодарю вас – я потратил часы на поиск ответа на этот вопрос.


Дополнительные сведения

Ниже приведен мой web.config в папке « Представления »:

     
...

И я добавил файл web.config в корень проекта. Он содержит следующее:

            ...            ...  

И вот ссылки на проект:

Ссылки по проекту

Библиотека classов имеет целевую структуру .NET Framework 4 и в разделе «Дополнительные настройки сборки», версия языка установлена ​​на C# 3.0 .

Обновить

Проект разрабатывается и работает правильно при использовании методов расширения и Linq. Это просто intellisense, который выдает ошибку.

Я пробовал все решения этой ошибки, которые я мог найти повсюду в Интернете, и мне не повезло.

Я, наконец, получил эту ошибку, чтобы исчезнуть (и мой IntelliSense для работы), скопировав дополнительные блоки конфигурации MVC из файла web.config моего проекта в файл app.config моего проекта.

Похоже, Visual Studio не уважает web.config (по крайней мере некоторые из его частей) в простой старый проект библиотеки C #.

Файл app.config моего проекта выглядит так:

                                         

Удачи.

Ключом к решению этой проблемы является добавление следующего тега в ваш app.config или web.config

    

Решением для меня было изменение типа проекта

1.Встроить проект

Проект 2.Edit

3. Добавьте строку ниже (в зависимости от вашей версии MVC проекта) сразу после ProjectGuid

MVC 4

 {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} 

MVC 3

 {E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} 

@ Matt

Попробуйте добавить это в Web.Config в корне проекта (не в папке Views)

  ...   
...

По прошествии нескольких часов я понял, что это связано с тем, что стандартные расширения Visual Studio не загружаются правильно.

Я получал ошибку:

Пакет приложений VSTS для баз данных Sql Server Data-level Application не загружен правильно

Я нашел ответ на Microsoft Connect .

Как исправить

1) Запустите следующие инсталляторы из среды Visual Studio:

\ WCU \ DAC \ DACFramework_enu.msi

\ WCU \ DAC \ DACProjectSystemSetup_enu.msi

\ WCU \ DAC \ TSqlLanguageService_enu.msi

2) Перезапустить VS

Надеюсь, это может помочь кому-то другому.

У нас была именно эта проблема в нашем Проекте сегодня – она ​​может быть реплицирована среди членов команды, поэтому проблема с установкой не была. Intellisense компилирует страницы в код 2.0, а не CS # 3.

Я отследил его до добавления веб-ссылки в проект classа (используя MVCContrib, чтобы он был в качестве справочной библиотеки согласно http://lostechies.com/erichexter/2009/11/01/asp-net-mvc-portable-areas -via-mvccontrib / )

Выпустил WebReference и перевел его в другой проект и устранил проблему, взял немало охоты, поэтому надеюсь, что это поможет кому-то еще!

Добавьте раздел «system.codedom» в ваш файл конфигурации (app.config в консольном приложении), например:

         
  • Могу ли я установить две разные версии Visual Studio на одном компьютере?
  • Элементы панели инструментов Visual Studio 2010 отключены или неактивны
  • Visual Studio 2010: ссылочные сборки Ориентация на версию с более высокой версией
  • Как установить Visual Studio 2010 Express где-нибудь, кроме C :?
  • Преобразование Web.config работает локально
  • Visual Studio 2010: возможно ли заставить редактор использовать ANSI, а не UTF-8?
  • Приложение WPF из Visual Studio 2010 выходит из строя Windows 7
  • pinvokestackimbalance - как я могу это исправить или отключить?
  • Комбинация смешанного режима построена против версии «v2.0.50727» среды выполнения
  • Обновление пользовательского интерфейса в C # с использованием таймера
  • Проблемы с профилированием функций - Visual Studio 2010 Ultimate
  • Interesting Posts
    Давайте будем гением компьютера.