我刚刚将一个 mvc4 项目(使用 vs2012)更新为 mvc5。在遇到了很多与依赖项相关的问题之后,我终于找到了本教程并整理了一些东西,以便它可以毫无问题地构建但是,我必须对任何视图(.cshtml 文件)进行智能感知:@using、@model、@html .*, @styles... 没有任何效果。我一定破坏了对剃刀视图引擎的引用,无法正确解析它们。我已经仔细检查了 web.configs 并且看不到任何东西。有任何想法吗?谢谢。
6 回答
经历了同样的痛苦,并且在视图中没有智能感知的情况下工作了大约 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
:
<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。
Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 现已发布,应该可以解决 VS 2012 的 MVC5 智能感知问题。
此版本带来了大量重大改进,包括对 Visual Studio 2012 和 Visual Studio 2012 Express for Web 用户的 ASP.NET MVC 5、Web API 2、脚手架和实体框架的一些出色增强。
您可以下载更新:http: //blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-视觉工作室 2012.aspx
在我的情况下,我已经尝试了所有这些和其他东西,解决方案是更改 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" />
虽然上述答案可以解决大部分问题,但我的问题显然是由我安装的 VS 扩展引起的。请在此处查看 Emran Hussain 提供的答案:Visual Studio 2013 IntelliSense stop working for ASP.NET MVC5 Controllers
他的回答对我来说是正确的,尽管我的问题只是我的 Razor Views 上的智能感知。我禁用了扩展,并重新启动了 VS2013,智能感知又可以正常工作了。像 Emran 一样,我不愿责怪扩展的制造商(ClumsyLeaf 软件的 AzureXplorer),因为我认为这可能是一个 VS 问题?
以前的解决方案都不适合我。我正在使用 VS 2012 和 MVC 5。这是我为使其工作所做的:
- 我按照以下链接中的说明安装了 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
我检查了 /web.config 和 /Views/web.config 并修复了一些版本问题。在我的情况下,我有 MVC 5.2,所以像这样进行正确的 MVC 竞标很重要:
此外,标记这一点很重要:
<add key="webpages:Version" value="3.0.0.0" />
我的剃刀视图文件顶部的“@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