Ошибка 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.
- Разрешения выходного файла Visual Studio?
- условные ссылки visual studio 2010
- Не удалось загрузить файл или сборку HRESULT: 0x80131515 (При добавлении controllerа в проект MVC с ссылками на сборку на сетевом диске)
- Visual Studio всегда выбирает неправильный xsd для App.config
- MVCBuildViews работают неправильно
Итак, для следующего файла 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, который выдает ошибку.
- Visual Studio C # IntelliSense не автоматически отображает
- Измените проект C ++ / CLI на другую структуру, чем 4.0 с помощью vs2010
- Как использовать файл дампа для диагностики утечки памяти?
- Как я могу заставить TFS2010 запускать MSDEPLOY для меня через MSBUILD?
- Как настроить gtk на Visual Studio 2010
- Не удается запустить веб-приложение ASP.NET MVC 2 на IIS 7.5
- Скопируйте файлы (файлы) из одного проекта в другой, используя событие post build ... VS2010
- Visual Studio 2010 всегда думает, что проект устарел, но ничего не изменилось
Я пробовал все решения этой ошибки, которые я мог найти повсюду в Интернете, и мне не повезло.
Я, наконец, получил эту ошибку, чтобы исчезнуть (и мой 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 в консольном приложении), например: