Перестал работать IntelliSense в файлах Razor (.cshtml)
Intellisense не работает в бритвенных файлах:
В моем файле web.conifg (в папке Views) видимо правильно:
<?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>
21 ответ
Вот что сработало для меня после того, как IntelliSense неожиданно начал глючить и перестал корректно окрашивать код C# между тегами HTML в моих представлениях:
Просто удалите содержимое папки на %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
В качестве дополнительного шага вы можете дополнительно запустить команду DevEnv.exe /setup
в командной строке разработчика для VS (как администратор), если вышеуказанный шаг не решает проблему.
Когда intellisense перестает работать в файле бритвы, есть большая вероятность, что проблема может быть решена в три этапа:
- Закрыть Visual Studio
- Удалить файл опций пользователя решения (
<solution-name>.suo
) - Снова откройте решение в Visual Studio.
Другие решения для вариантов intellisense можно найти здесь.
Одной из причин этого может быть то, что для ваших веб-страниц установлена версия 3 для приложения mvc4, вы можете просто изменить его на версию 2 в настройках приложения web.config.
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
Я испытывал это в 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>
У меня была эта проблема с Visual Studio 2017 - я зашел в каталог, где находится решение, и удалил папку.s vs (это скрытая папка), и это устранило мою проблему.
Мой проект был обновлен с VS2012 до VS2013, и это решило проблему для меня:
Измените "webpages:Version" в файле Web.config с "1.0.0.0" на "2.0.0.0"
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
В моем случае решение заключалось в установке для параметра «Использовать устаревший редактор Razor для ASP.NET Core» внутри инструментов> параметры> текстовый редактор> HTML> значение true.
В моем случае проблема заключается в "Xamarin" (средства разработки мобильных приложений). После удаления Xamarin бритва Intellisense работает нормально.
Я была такая же проблема. Хотя я использую VS 2012, есть загрузка, которая применяется как к VS 2013, так и к VS 2012. Я пробовал довольно много исправлений (связанных с web.config, удалением / переустановкой MVC через NuGet и т. Д.), Но только один, который работал для меня, устанавливал это (снова, для меня, для VS 2012)
VS 2013 с ASP.NET и веб-инструментами 2013.1 http://www.asp.net/downloads
Похоже, что есть много причин, порождающих эту проблему.
В моем случае я скопировал некоторый код / файлы из другого проекта, после чего Intellisense не работает, потому что у меня есть другое пространство имен в скопированных файлах, так что Intellisense не работает. правильное пространство имен заставляет его работать снова.
Мне просто нужно было щелкнуть правой кнопкой мыши "Добавить в проект" для моего нового представления, чтобы выбрать Intellisense.
У меня была похожая ситуация, а потом я понял, что бритва не была включена в мой проект. Как только я включил его в проект (щелкните правой кнопкой мыши по файлу просмотра и выберите "Включить в проект"), обнаружился Intellisense.
В моем случае ничего из вышеперечисленного не помогло, вот что я сделал, чтобы решить мою проблему:
Загрузите проект с VS и оставьте его, а затем откройте your-project-name.csproj с помощью Notepad++ или любого другого текстового редактора, который вы хотите, и внесли некоторые изменения, например, удалите тег Content (не волнуйтесь, он вернется один раз вы включаете его в VS Solution Explorer), как только вы сохраните свои изменения, IDE Visual Studio обнаружит ваши изменения и попросит перезагрузить весь проект, нажмите "Да" и мой код IntelliSense вернется.
Я использую: Microsoft Visual Studio Professional 2019 Preview Версия 16.3.0 Preview 2.0
Надеюсь, это поможет.
Установка ASP.NET и веб-инструментов 2013.1 для Visual Studio 2012 работала для меня:
Возможно, вам придется перезапустить VS, чтобы это работало.
Установка более новой версии (ночная сборка) Resharper (2018.3 EAP 3) помогла в моем случае.
В моем случае это решило мою проблему, я просто изменил значение версии с 3 на 2. и это работает для меня.
Я только что столкнулся с очень похожей проблемой: существующее приложение не обеспечивало интеллектуальность для представлений Razor, но я мог создать совершенно новое приложение, и оно работало. Мне удалось решить эту проблему с помощью Scaffolding для создания нового контроллера и представлений для сущности. Интеллектуальность работала для новой сущности, и она снова работала для существующих!
После долгих поисков и испытаний я обнаружил, что без установки 2013 года или какой-либо обновленной версии вы все еще можете решить эту проблему раскраски на 2012 год. Установка "ASP.NET и Web Tools 2013.1 для Visual Studio 2012" решила эту проблему для меня. Закройте VS 2012 и перезапустите его после установки.
Ссылка для загрузки: https://www.microsoft.com/en-us/download/details.aspx?id=41532
Это сработало для меня. Надеюсь, это работает для вас всех.
Остерегайтесь, если у вас есть области в вашем веб-приложении, есть еще один файл Web.config в папке Areas/Views, и в моем случае этот файл конфигурации был виновником.
Кроме того, вам, возможно, придется перезапустить Visual Studio после внесения изменений в Web.config, перестройка решения, похоже, не воспринимает изменения, по крайней мере, для меня.
Ни одно из приведенных выше решений не решило мой случай. Теперь я понял, что это было из-за того, что я сделал дефрагментацию. Это вызвало эту проблему, переместив и удалив некоторые файлы. Я переустановил Visual Studio. Он работает нормально, если я снова не выполню дефрагментацию. Я надеюсь, это поможет вам