Файлы IntelliSense в Razor (.cshtml) перестали работать - программирование
Подтвердить что ты не робот

Файлы 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>
4b9b3361

Ответ 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, перестройка решения, похоже, не подберет изменения, по крайней мере, это не для меня.

Ответ 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

Надеюсь, это поможет.