视图中没有Intellisense从ASP.NET MVC 4更新到MVC 5

时间:2013-10-21 16:54:16

标签: .net asp.net-mvc visual-studio asp.net-mvc-4 intellisense

我刚刚将mvc4项目(使用vs2012)更新为mvc5。在遇到很多与依赖关系有关的问题后,我终于找到了this tutorial并将其弄平,以便构建没有问题但是,我必须对任何视图(.cshtml文件)进行智能感知:@using,@ model ,@ html。*,@ styles ......什么都行不通。我必须打破剃刀视图引擎无法正确解析它们的引用。我已经仔细检查了web.configs,看不到任何东西。有任何想法吗?谢谢。

6 个答案:

答案 0 :(得分:28)

经历了同样的痛苦,并且在视觉中没有智能感知工作大约3周。 然后我终于找到了它。当我在web.config中将网页设置切换到版本3时,它开始工作。

所以在我的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。

答案 1 :(得分:17)

ASP.NET和Web Tools 2013.1 for Visual Studio 2012现已发布,应解决VS 2012的MVC5 intellisense问题。

  

此版本带来了大量改进,包括一些   ASP.NET MVC 5,Web API 2,Scaffolding和   Visual Studio 2012和Visual Studio 2012用户的实体框架   Express for Web。

您可以下载更新: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 :(得分:7)

我尝试了所有这些和其他东西在我的情况下,解决方案是改变这一行在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" />

答案 3 :(得分:1)

虽然上述答案可以解决大部分问题,但我的问题显然是由我安装的VS扩展引起的。请参阅Emran Hussain在这里提供的答案:Visual Studio 2013 IntelliSense stops working for ASP.NET MVC5 Controllers

他的答案对我来说很明显,尽管我的问题仅在于我的Razor Views中的intellisense。我禁用了扩展,并重新启动VS2013并且intellisense再次正常工作,没有任何问题。像Emran一样,我很谴责扩展的制造者(ClumsyLeaf软件的AzureXplorer),因为我认为这可能是一个VS问题?

答案 4 :(得分:1)

以前的解决方案都不适合我。我正在使用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 biding这样:

  3. 此外,重要的是要标记:

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

答案 5 :(得分:0)

&#34; @ model&#34;的工具提示我的剃刀视图文件顶部的标签声明无法找到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>
        ...

我的intellisense回来了,然后我将最终修复推迟到低prio任务:D