it-roy-ru.com

Нет Intellisense в обновлениях представлений из ASP.NET MVC 4 в MVC 5

Я только что обновил проект mvc4 (используя vs2012) до mvc5. После множества проблем, связанных с зависимостями, я наконец нашел этот учебник и исправил его так, чтобы он создавался без проблем. Однако мне нужно найти все точки зрения для любого из представлений (файлы .cshtml): @using, @ модель, @ html. *, @styles ... ничего не работает. Должно быть, я сломал ссылку на механизм просмотра бритвы, который не может их правильно проанализировать. Я дважды проверил web.configs и ничего не вижу. Есть идеи? Благодарю. 

30
user906573

ASP.NET и Web Tools 2013.1 для Visual Studio 2012 уже выпущены и должны решить проблему с IntelliSense MVC5 в VS 2012.

Этот релиз принес массу замечательных улучшений, включая некоторые фантастические улучшения ASP.NET MVC 5, Web API 2, Scaffolding и Entity Framework для пользователей Visual Studio 2012 и Visual Studio 2012 Экспресс для Интернета.

Вы можете скачать обновление: http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1- for-visual-studio-2012.aspx

17
hatsrumandcode

Пережил ту же самую агонию и работал без интеллигенции в представлениях около 3 недель .... Тогда я наконец нашел ее. Он начал работать, когда я переключил настройку веб-страниц на версию 3 в web.config. 

Так что в моем web.config это была версия 2.0.0.0, после обновления до 3.0.0.0 она начала работать

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

Надеюсь, это была ваша проблема, и она поможет, потому что я чувствую вашу боль :)

------------------------------------------------ --------

ОБНОВЛЕНИЕ: Для других, кто все еще ищет исправление для этой проблемы в обновлении после MVC5, это помогло мне: в ~/Views/web.config обновление с MVC 5.2.2.0 до 5.2.3.0 с использованием Nuget не обновило эту строку :

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Обновление 5.2.2.0 до 5.2.3.0 вернуло Intellisense к жизни. Возможно, вам придется закрыть представление и снова открыть его, чтобы загрузить Intellisense.

28
Dennis Puzak

Я должен был попробовать все это и другие вещи в моем случае, решение было изменить эту строку, которая находится в Views-WebConfig внутри 

  <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

в 

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
7
Diego_DX

Ни одно из предыдущих решений не помогло мне. Я использую VS 2012 и MVC 5. Вот что я сделал, чтобы он работал:

  1. Я установил Web Tools 2013, как описано в следующей ссылке: http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web- tools-2013-1-for-visual-studio-2012.aspx
  2. Я проверил /web.config и /Views/web.config и исправил некоторые проблемы с версиями. В моем случае у меня есть MVC 5.2, поэтому было важно сделать правильную привязку MVC следующим образом:

Также важно отметить это:

<add key="webpages:Version" value="3.0.0.0" />
1
Francisco Goldenstein

Хотя приведенные выше ответы могут решить большинство из этих проблем, моя проблема, очевидно, была вызвана расширением VS, которое я установил. Пожалуйста, смотрите ответ, предоставленный Эмраном Хуссейном здесь: Visual Studio 2013 IntelliSense перестает работать для контроллеров ASP.NET MVC5

Его ответ был точным для меня, хотя моя проблема была с intellisense только для моих Razor Views. Я отключил расширение и перезапустил VS2013, и intellisense снова работает без проблем. Как и Эмран, я не решаюсь винить производителя расширения (AzureXplorer от программного обеспечения ClumsyLeaf), потому что я думаю, что это может быть проблемой VS?

1
PTK

Во всплывающей подсказке к тегу "@model" в самом верху моего файла просмотра бритвы указывалось, что не найден autofac 3.4.0.0. Все мои проекты использовали Autofac 3.1.5, поэтому я добавил редирект в web.config, чтобы быстро обойти проблему:

<runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.1.5" />
        </dependentAssembly>
        ...

Моя интеллигенция вернулась, и я отложил окончательное исправление до минимальной задачи: D

0
o_o