Мне сложно описать точную проблему, но, похоже, это "просто" проблема IntelliSense, которая отображается только в виде бритвы (.cshtml). Я смотрел на это в течение 2 дней, поэтому я мог действительно помочь.
Я использую VS2015 Pro, запустил новое приложение Web MVC (WebApplication2), используя стандартный шаблон. Внутри этого приложения все работает отлично.
Теперь я добавил проект библиотеки классов (по умолчанию, а не шаблон "Пакет" ), и добавил к нему пакеты WebPages, MVC и razor nuget (в случае, если это имеет значение). Проблема становится видимой, как только я создаю новое представление в библиотеке классов. Похоже, что все ссылки на системные библиотеки недоступны в файле cshtml. Без открытых файлов я не получаю никаких ошибок, но когда я открываю представление, все системные классы имеют под ними красную квадратную строку, а в списке ошибок (Build + IntelliSense) неожиданно появляется много ошибок для каждой системы * библиотеки, например
The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
К ним относятся Linq и WebApplication2 (тестовый проект), поэтому не только System.Web.
Вещи, которые я проверил и сделали основы на аналогичных ответах на стек:
- Web.config в папке "Представления" содержит правильные версии, также попробовал просто скопировать файл из веб-приложения.
- Переустановил пакеты nuget (Mvc, Razor, Webpages).
- Сброс пользовательских данных и удаление папки .vs.
- Копировать локаль в сборку установлено значение true.
Фактический случай, когда мы обнаружили это наше большое веб-приложение, которое отлично работает в VS2010, но затем мы решили перейти на 2015 год и .Net 4.6. Представления в библиотеке классов помечены как внедренный ресурс и загружаются с использованием поставщика виртуального пути. Вышеприведенный случай представляет собой супер упрощенный воспроизводимый проект, симптомы одинаковы на компьютерах моих и моих двух коллег.
Если я пропустил важную информацию, просто спросите.