11

我已经更新了所有 nuget 包并获得了新的 MVC 5.0 包和 Razor 3.0 从那时起,所有 .cshtml 文件的智能和语法突出显示都停止了工作

System.Web.WebPages.Razor is version: 3.0.0.0
System.Web.dll is version 4.0.0.0
System.Web.Mvc is version 5.0.0.0

我正在运行带有更新 3 的 Visual Studio 2012

还尝试制作一个新的 MVC 4 项目并进行 Nuget 更新,结果相同:Razor Intellisence 停止工作。

应用升级指南但没有成功: http ://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to- aspnet-mvc-5-and-web-api-2

4

4 回答 4

13

微软为此发布了更新,Web Tools 2013.1 for VS2012。

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

于 2013-11-23T09:50:40.930 回答
1

如何将 aspnet mvc4 和 webapi 项目升级到 aspnet mvc5 和 web api2

在 VS2013 Preview 中,我们发布了新的 Razor V3 运行时和设计时引擎,以支持 MVC5 和 Razor V3 网站的运行时和设计时行为。与 Razor V2 运行时和设计时不同,VS2013 没有 GAC 这些二进制文件。而是在安装相应 NuGet 包时将二进制文件安装在项目 bin 文件夹中,并在“%ProgramFiles (x86)%\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\Web\Razor\v3.0”支持设计时间。

与在 VS2012 中确定要加载哪些 razor v1/v2 设计时 dll 一样,VS 2013 预览版首先使用 web.config 文件键来确定要加载的设计时 dll 版本以用于编辑网页。例如,默认情况下,MVC5 项目包含,VS 会加载 Razor V3 dll 来编辑项目的网页文件(即 cshtml 或 vbhtml 文件)。

如果 web.config 文件中缺少密钥,例如默认的 Razor V2/V3 网站,VS 将使用 bin 目录的 razor dll 版本来确定要加载的设计时 razor 引擎 dll。

由于 Razor v1 不再附带 VS2013 预览版,如果在没有 bin 目录或 web.config 设置的情况下打开单个网页文件(即 cshtml 或 vbhtml 文件),VS 2013 预览版将简单地将网页加载为纯文本文件。2013 年 10 月 9 日更新:在 VS2013 RC 和 RTW 中,VS 将使用盒子上最高的 Razor 版本打开单个网页文件。

您可以通过调试到 Visual Studio 进程并检查模块窗口来验证这些行为,使用 razor 关键字进行过滤。

于 2013-11-23T10:55:10.267 回答
0

您是否尝试过手动重置智能感知?

要手动重新启用智能感知,请进入您的工具 -> 选项 -> 文本编辑器 -> 所有语言 + C#

于 2013-10-24T02:28:34.947 回答
0

由于在撰写本文时发布的所有答案都是从 2013 年开始的,而且我们中的一些人仍然不幸使用 VS2012,因此我想发布一个指向 WebTools2013 包的直接链接,该包将启用 Razor 3 支持:

直接下载链接:WebTools2013 for Visual Studio 2012

由于 Web 平台安装程序无法再找到 Razor 3 包,我被迫使用链接。

希望这对其他人有帮助!

于 2018-09-27T18:01:37.977 回答