MVC Razor видит, что Intellisense сломан в VS 2013/2015/2017 - программирование
Подтвердить что ты не робот

MVC Razor видит, что Intellisense сломан в VS 2013/2015/2017

У меня есть существующий проект, написанный на VS2010, который при загрузке в VS2010 работает отлично.

Когда я загружаю этот же проект в VS2013, представления MVC Razor содержат много ошибок, как если файл конфигурации отсутствует в папке представлений.

Кажется, он неправильно загрузил редактор Razor, используя файлы конфигурации из корневой папки и в папку представлений, и вместо этого дает мне такие ошибки, как...

The name 'model' does not exist in the current context

и...

'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'LabelFor' 
and no extension method 'LabelFor' accepting a first argument of type 
'System.Web.WebPages.Html.HtmlHelper' could be found 
(are you missing a using directive or an assembly reference?)

...

Любая идея, что может вызвать это?

Изменить: Конфигурируйте файлы по запросу....

Из основного файла web.config(не все из него, так как он слишком большой для публикации)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Ninject" culture="neutral" publicKeyToken="c7192dc5380945e7" />
            <bindingRedirect newVersion="3.0.0.0" oldVersion="0.0.0.0-3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Validation" culture="neutral" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect newVersion="5.0.505.0" oldVersion="0.0.0.0-5.0.505.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Файл конфигурации в "~/Views/"...

<?xml version="1.0"?>  
<configuration>
    <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
            <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.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=3.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="Emedia.Common.Mvc.Views.Helpers"/>
                <add namespace="Emedia.Common.Mvc.Views.Extensions"/>
        <add namespace="Emedia.Common.Utilities"/>
        <add namespace="Emedia.Common.Utilities.Extensions"/> 
        <add namespace="Emedia.Common.Mvc.Controllers.Helpers"/>
                <add namespace="Emedia.Resources.Service"/>
        <add namespace="Emedia.Subscriber.Controllers"/>
        <add namespace="Emedia.Subscriber.Controllers.ViewModels"/>
            </namespaces>
        </pages>
    </system.web.webPages.razor>

    <appSettings>
        <add key="webpages:Enabled" value="false" />
    </appSettings>

    <system.web>
        <httpHandlers>
            <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
        </httpHandlers>
        <pages
            validateRequest="false"
            pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
            pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
            userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <controls>
                <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
        </controls>
    </pages>
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
        <remove name="BlockViewHandler"/>
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
</system.webServer>

4b9b3361

Ответ 1

Я рассматривал редактирование сообщения @ChrisMoschini, но думал, что он был совсем другим. Моя проблема заключалась в том, что я начал новое приложение MVC5 и слепо скопировал слишком много настроек web.config из старого проекта MVC3, который я хотел использовать в качестве шаблона/отправной точки. Это вызвало у меня некоторые недопустимые версии, упомянутые в моем web.config.

Чтобы исправить, я создал еще один новый проект MVC5 и удостоверился, что следующие значения конфигурации в моем плохом проекте совпадают с ванильным немодифицированным приложением MVC5. Опять же, не слепо копируйте эти номера версий. Просто убедитесь, что они соответствуют приложению MVC от vanilla версии, которую вы пытаетесь выполнить

в корневом каталоге web.config:

<appSettings>
    ...
    <add key="webpages:Version" value="3.0.0.0"/> 
    ...
</appSettings>
<system.web>
    ...
    <compilation debug="true" targetFramework="4.5.1"/>
    <httpRuntime targetFramework="4.5.1"/>
    ...
</system.web>

в Views\Web.config:

<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>


<system.web.webPages.razor>
  ...
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  ...
</system.web.webPages.razor>

Ответ 2

Несколько из моих проектов имели эти проблемы в течение нескольких месяцев. Я пробовал так много обходных решений, и ничего не получилось. Проблемы, казалось, были связаны с проектами: у того же проекта будет проблема Intellisense на всех ПК с помощью Visual Studio. Наконец я пришел через этот пост: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

В нашем случае причиной было то, что выходной каталог всех этих проектов был изменен на другие, кроме "bin". Меняя OutputPath на "bin" (и очищая проект, закрывая, а затем снова открывая Visual Studio), я снова получил Intellisense.

Сообщение, упомянутое выше, также предоставило обходной путь для поддержки отдельного каталога вывода, все еще имеющего Intellisense.

Надеюсь, кому-нибудь это поможет.

Ответ 3

MS говорит, что для VS2013 файлы Intellisense for Razor (CSHTML и VBHTML) ограничены разметкой HTML. "

Но если вы добавите эти две строки внутри каждого .cshtml, intellisense снова будет работать для MVC3 в VS2013:

@using System.Web.Mvc.Html
@inherits System.Web.Mvc.WebViewPage<dynamic>

Вместо dynamic вы можете поместить свой тип модели.

Ответ 4

Я недавно решил эту проблему самостоятельно. Я обновился от MVC4 до MVC5 (в частности, 5.1). Модернизация до более новой версии MVC вызвала этот хаос, и я потратил часы, пытаясь его решить. Незначительные изменения в файле Web.Config исправили проблему с intellisense!

Вы сказали, что проект работает в VS2010, но не в 2013 году? См. Этот ответ здесь.

Я рекомендую обновить до MVC5. Это не больно, и обновление должно быть довольно бесшовным.

Если вы обновляетесь до MVC5 и вы все еще не получаете intellisense, вам необходимо обновить файл Web.Config вручную, так как обновление может не сделать это правильно!

Здесь представлена ​​измененная версия вашего Web.conifg в папке /Views, которая должна отражать изменения для MVC5.

<?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.1.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="Emedia.Common.Mvc.Views.Helpers"/>
            <add namespace="Emedia.Common.Mvc.Views.Extensions"/>
    <add namespace="Emedia.Common.Utilities"/>
    <add namespace="Emedia.Common.Utilities.Extensions"/> 
    <add namespace="Emedia.Common.Mvc.Controllers.Helpers"/>
            <add namespace="Emedia.Resources.Service"/>
    <add namespace="Emedia.Subscriber.Controllers"/>
    <add namespace="Emedia.Subscriber.Controllers.ViewModels"/>
        </namespaces>
    </pages>
</system.web.webPages.razor>

<appSettings>
    <add key="webpages:Enabled" value="false" />
</appSettings>

<system.web>
    <httpHandlers>
        <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <controls>
            <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
    </controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />

<handlers>
    <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>

Если обновление не является вариантом, то, боюсь, вам нужно будет продолжать использовать VS2010, если вы хотите, чтобы поддержка Intellisense для MVC3. Однако я настоятельно рекомендую перейти на MVC5.

Ответ 5

Я обновил MVC3-проект до MVC5 и сделал все, что мог, чтобы избежать единственного истинного ответа на эту проблему, которую рекомендует Microsoft:

Начните с нового проекта и перенесите полученные бит в существующий проект.

Этот процесс - большая трата времени, и похоже, что Microsoft должна сделать реальный путь обновления жизнеспособным, но я здесь, чтобы сказать вам, что проблема здесь эмоциональная, но не техническая: вам действительно нужно просто создать новый проект MVC5 и замените следующий результат на новый проект MVC5:

\Packages\*
\Project\Project.csproj
\Project\packages.config
\Project\Web.Config
\Project\Views\Web.Config
\Project\Areas\*\Views\Web.Config

Если вы этого не сделаете, вы просто будете ходить по кругу в течение вечности, пытаясь найти ту настройку, которая дует. В нашем случае у меня был Web.Configs, который был идентичен недавно созданному MVC5-проекту Razor Intellisense, и я использовал все инструменты обновления, которые я мог найти, вы называете это. Intellisense отказался работать.

После того, как просто сдул .csproj и web.configs и т.д., Intellisense вернулась к жизни. Разделяя две стороны, ни один из ответов, которые я нашел, нигде не соответствует тому, что я вижу. Web.Configs почти идентичны, а бит, которые являются разными, не имеют значения. Главное изменение - это действительно то, что в \Packages\- много старых DLL Razor, MVC и WebPages. Это может быть трюк, но пропустите это и сэкономить много времени: просто создайте новый проект MVC5 и выгрузите вышеперечисленные файлы. Это единственный разумный способ обновления.

Ответ 6

Для всех, кто мог бы споткнуться об этом, я не нашел ни одного из предыдущих ответов, чтобы действительно решить мою проблему или не относиться к ней. Так или иначе, как это разрешило для меня и снова заработало intellisense, нужно было перейти в папку с bin и удалить все файлы там, а затем очистить/перестроить, и это было исправлено.

Ответ 7

Когда я создал новый проект, intellisense работал нормально, но по какой-то причине он не работал в нашем текущем проекте. Единственное отличие, которое я нашел в файле Views/Web.config, состояло в том, что у нас была MVC версия 5.2.0.0, а новый проект - 5.0.0.0. Для нас это изменилось:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
     Version=5.0.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />

:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
     Version=5.2.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />

Ответ 8

Этот вопрос был разрешен, но я добавляю это для будущих людей, поскольку ни одно из вышеперечисленных не работало для меня:

Попробуйте запустить Visual Studio в качестве администратора.

Как-то, когда я попытался удалить мои пакеты nuget (которые содержат все необходимые ссылки, например System.Web.Mvc, мне сказали, что мне нужно разрешение от MyPC\Me. Смешно! (Я единственный пользователь и только администратор...) В любом случае, работая как администратор, по крайней мере, позвольте мне получить доступ к тем файлам, которые исправили intellisense.

Ответ 9

Комбинация следующего помогла решить проблему для меня:

  • Создание нового проекта MVC
  • Сравнение версий в представлениях файлов web.config существующих и новых проектов
  • Исправление версий (см. ниже)
  • Удаление всех файлов в папке bin
  • Очистка решения
  • и, наконец, перестроить решение
<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.2.3.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" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false" />
  </appSettings>
  [...]

Ответ 10

У меня было это снова и снова; Я нахожусь на моем третьем новом проекте, и это сводит меня с ума! Кажется, я нашел причину проблемы. Я добавил файлы, но не включил их в Visual Studio. Поэтому я теперь решил просмотреть все файлы:

введите описание изображения здесь

Затем для всех моих папок, которые я добавил, я их включаю:

введите описание изображения здесь

Проблема заключается в том, что это только появляется, когда вы открываете сайт MVC в качестве проекта, а не когда вы открываете его как веб-сайт.

Ответ 11

В конце концов у меня возникло множество других проблем на моем компьютере из-за сбоя сетевого сервера и закончилась переустановка визуальной студии.

Это, видимо, решило проблему... я понятия не имею, как это было сделано.

Интересно, может быть, в моем случае это была просто неисправная установка, а не типичная проблема.

По этой причине я буду отмечать это как ответ, но +1 все остальные ответы, поскольку они потенциально являются хорошими ответами на эту проблему.

Однако я обнаружил, что Microsoft явно утверждает, что Visual Studio 2013 не поддерживает intellisense в более низких версиях MVC, чем 4, поэтому, если вы используете MVC 3, обновите свой проект, если используете более новую версию MVC, и больше ничего здесь не работает переустановка визуальной студии.

Также стоит отметить... MVC теперь является пакетом nuget, поэтому не устанавливайте MVC из загрузочного переиздания, чтобы VS мог понять это для вас.

Ответ 12

В моем случае я переместил все виды из области в корневую папку Views, поэтому я думаю, что VS запутался в том, где мой web.config был. Я переименовал его в Web.config, из web.config, а затем внес изменения в содержимое конфигурации (например, изменив номер версии бритвенного хоста factory dll с 5.2.2.0 до 5.2.3), но затем изменил его.

Затем я отправился на прогулку около 30 минут и вернулся и перезапустил VS, и это было исправлено!

Ответ 13

В MVC 5, если вы попытаетесь добавить область, просто добавив папку в разделе "Области" и подпапки для "Контроллеры", "Виды", "Модели" и т.д., у вас не будет файла * AreaRegistration.cs, который регистрирует эту область, или web.config в представлениях, которые позволяют VS понять элементы бритвы, которые вы включаете в свои представления. Результатом этого является то, что intellisense не работает в вашем представлении для таких вещей, как ViewBag. Если у вас есть рабочие примеры этих файлов в других областях, вы можете скопировать их и обновить по мере необходимости - или вы можете начать с вашего Района, щелкнув правой кнопкой мыши по области и сделав Add-Area, которая создаст эти файлы для вас.

Ответ 14

Я изменился с

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
 Version=5.2.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />

:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
 Version=5.0.0.0, Culture=neutral, PublicKeyToken=123JHJF56AD364E35" />

И это сработало!

Ответ 15

Обновите пакеты NuGet с помощью консоли диспетчера пакетов в Менеджере пакетов инструментов, библиотеки.

В командной строке.. PM> Update-Package Это обновит пакеты NuGet и проверит текущую версию System.web.MVC и обновит эту версию в файле web.config в папке "Виды".

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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="System.Web.Webpages"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

Закройте решение и снова запустите.

Надеюсь, это сработает!!!

Ответ 16

У меня была эта проблема в течение шести месяцев, и я понял, что мне нужно переместить мои директивы @model на верх страницы. Я ранее использовал их внутри блоков кода.

Ответ 18

У меня возникла аналогичная проблема. У меня был проект MVC 5, созданный с помощью VS2015 Community Edition, с которым мне нужно было работать с VS2013 Ultimate. Удаление следующего блока <system.codedom></system.codedom> из корневого файла web.config - это то, что, наконец, позволило IntelliSense снова работать в моих представлениях Razor на VS2013.

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>

Ответ 19

Попробуйте установить свойство CopyLocal ссылки System.Web.Mvc на true. Иногда это помогает с Intellisense.

Ответ 20

Я использую VS 2017 профессионала, и я пробовал почти каждый ответ на этом посту, а также те, что были на которые публикуются, но ничего не работало для меня. Вчера я обновил VS, до версии 15.2 (26430.6) Release, а intellisense вернулся в мои файлы cshtml!

Ответ 21

Я пробовал почти все решения, но не получал intellisense, и в конце я нашел решение:

  • Перейти к обозревателю решений
  • Щелкните правой кнопкой мыши на файле .cshtml или любом файле вида
  • Выберите опцию "Открыть с" и сделайте HTML Editor (по умолчанию) установленным по умолчанию

Ответ 22

При обновлении с MVC 3 до 5 я обнаружил, что в моем корневом каталоге Web.config для ключа appSettings webpages:version установлено значение 2.0.0.0. Изменение этого параметра на 3.0.0.0 исправило эту проблему.

<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> </appSettings>