Файлы IntelliSense в Razor (.cshtml) перестали работать
Intellisense не работает в файлах бритвы:
![enter image description here]()
В моем файле web.conifg(в папке "Представления" ), по-видимому, правильно:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="MvcSiteMapProvider.Web.Html" />
<add namespace="MvcSiteMapProvider.Web.Html.Models" />
<add namespace="DevTrends.MvcDonutCaching" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler" />
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
Ответы
Ответ 1
Вот что сработало для меня после того, как IntelliSense неожиданно начал глючить и перестал правильно окрашивать код С# между тегами HTML в моих представлениях:
Просто удалите содержимое папки в %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
Если вы используете VS 2019, папка версии называется 16.0_<hash>
.
![enter image description here]()
В качестве дополнительного шага вы можете дополнительно запустить команду DevEnv.exe /setup
в командной строке разработчика для VS (как администратор), если вышеуказанный шаг не решит проблему.
Ответ 2
Когда intellisense перестает работать в файле бритвы, есть хорошая вероятность, что проблема может быть устранена в три этапа:
- Закрыть Visual Studio
- Удалить файл параметров пользователя решения (
<solution-name>.suo
)
- Повторно откройте решение в Visual Studio.
Другие решения для опций intellisense можно найти здесь.
Ответ 3
Одной из причин этого может быть то, что если ваши приложения для версии mvc4 установлены на версию 3, вы можете просто изменить ее на версию 2 в настройках приложения web.config.
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
Ответ 4
Я испытывал это в Visual Studio 2013 после обновления проекта до MVC 5.2.3. Вещь, которая работала для меня, заключалась в замене web.config в папке "Views" следующим: пакет NuGet оставил этот web.config со многими ссылками MVC 4.0.
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="InvestureApps" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
Ответ 5
В моем случае проблема "Xamarin" (инструменты для разработки мобильных приложений).
После удаления Xamarin бритва Intellisense работает нормально.
http://forums.xamarin.com/discussion/24892...
Ответ 6
У меня была такая же проблема. Хотя я использую VS 2012, есть загрузка, которая применяется как к VS 2013, так и к VS 2012. Я пробовал довольно много исправлений (связанных с web.config, удалением/переустановкой MVC через NuGet и т.д.), Но только тот, который работал у меня, устанавливал это (опять же, для меня, для VS 2012)
VS 2013 с ASP.NET и веб-инструментами 2013.1
http://www.asp.net/downloads
Ответ 7
Мой проект был повышен с VS2012 до VS2013, и это решило проблему для меня:
Измените "webpages: Version" в файле Web.config с "1.0.0.0" на "2.0.0.0"
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
Ответ 8
У меня была эта проблема с Visual Studio 2017 - я зашел в каталог, в котором находится решение, и удалил папку .s vs (это скрытая папка), и это устранило мою проблему.
Ответ 9
Похоже, что есть много причин, порождающих эту проблему.
В моем случае я скопировал некоторый код/файлы из другого проекта, после чего Intellisense не работает, потому что у меня есть другое пространство имен в скопированных файлах, поэтому Intellisense не работает. правильное пространство имен заставляет его работать снова.
Ответ 10
Следите за тем, есть ли у вас области в вашем веб-приложении, есть еще один файл Web.config в папке Areas/Views, и в моем случае этот файл конфигурации был виновником.
Кроме того, возможно, вам придется перезапустить Visual Studio после внесения изменений в Web.config, перестройка решения, похоже, не подберет изменения, по крайней мере, это не для меня.
Ответ 11
Установка ASP.NET и веб-инструменты 2013.1 для Visual Studio 2012 работали для меня:
Вам может потребоваться перезапустить VS для этого.
Ответ 12
У меня возникла очень похожая проблема: существующее приложение не предоставляло intellesense для просмотров Razor, но я мог создать совершенно новое приложение, и оно сработало. Я смог решить проблему, используя Scaffolding, чтобы создать новый контроллер и представления для объекта. Intellesense работал для нового объекта, и он снова работал для существующих!
Ответ 13
После многих поисков и тестов я обнаружил, что без установки 2013 или любой обновленной версии вы все равно можете решить эту проблему с раскраской на 2012 год. Установка "ASP.NET и веб-инструменты 2013.1 для Visual Studio 2012" решила это для меня. Закройте VS 2012 и перезапустите его после установки.
Ссылка на Dowload,
https://www.microsoft.com/en-us/download/details.aspx?id=41532
Это сработало для меня. Надеюсь, это сработает для всех вас.
Ответ 14
У меня была аналогичная ситуация, и я понял, что взгляд бритвы не был включен в мой проект. Как только я включил его в проект (щелкните правой кнопкой мыши файл просмотра и выберите "Включить в проект" ), появился Intellisense.
Ответ 15
В моем случае это решило мою проблему, я просто изменил значение версии с 3 на 2. и это работает для меня.
Ответ 16
Мне просто нужно было щелкнуть правой кнопкой мыши "Добавить в проект" для моего нового представления, чтобы выбрать Intellisense.
Ответ 17
В моем случае помогла установка более новой версии (ночная сборка) Resharper (2018.3 EAP 3).
Ответ 18
В моем случае ничего из вышеперечисленного не помогло, вот что я сделал, чтобы решить мою проблему:
Загрузите проект с помощью VS и оставьте его, а затем откройте your-project-name.csproj с помощью Notepad++ или любого другого текстового редактора, который вам нравится, и внесли некоторые изменения, такие как удаление тега содержимого (не волнуйтесь, это будет Если вы снова включите его в VS Solution Explorer), как только вы сохраните свои изменения, Visual Studio IDE обнаружит ваши изменения и попросит перезагрузить весь проект, нажмите "Да" и мой код IntelliSense вернется.
Я использую:
Microsoft Visual Studio Professional 2019 Предварительный просмотр
Версия 16.3.0 Preview 2.0
Надеюсь, это поможет.