Razor 3在Visual Studio 2012中

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

我正在使用带有Update 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


请查看此答案:https://dev59.com/BmMl5IYBdhLWcg3w_bHj#19124665 - jmoerdyk
我有同样的问题,请阅读此链接:https://dev59.com/BmMl5IYBdhLWcg3w_bHj#19560412评论必须至少包含15个字符。评论必须至少包含15个字符。评论必须至少包含15个字符。 - Mohammadreza
Visual Studio 更新 4 支持 MVC 5。详见:http://geekswithblogs.net/anirugu/archive/2013/11/08/mvc5-will-be-part-of-visual-studio-2012-update-4.aspx - Anirudha Gupta
4个回答


1

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

在VS2013预览版中,我们发布了新的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项目包含“<add key="webpages:Version" value="3.0.0.0" />”,VS将加载Razor V3 dlls来编辑该项目的网页文件(即cshtml或vbhtml文件)。

如果web.config文件中缺少密钥,比如默认的Razor V2/V3网站,VS将使用bin目录下的razor dll版本来确定加载设计时razor引擎dll。由于Razor v1不再与VS2013预览版一起发布,如果打开单个网页文件(即cshtml或vbhtml文件)而没有bin目录或web.config设置,则VS 2013预览版将简单地将该网页加载为纯文本文件。更新于10/9/2013:在VS2013 RC和RTW中,VS将使用盒子上最高的Razor版本打开单个网页文件。您可以通过调试Visual Studio进程并检查模块窗口(使用razor关键字进行筛选)来验证这些行为。

1
为了解决这个问题,我在VS 2013中创建了一个新项目,并迁移了所有内容。 - Jeremi Stadler

0

由于撰写本文时发布的所有答案均为2013年的,而我们中仍有一些不幸的人需要使用VS2012,因此我想发布一个直接链接到WebTools2013包的链接,该包将在其他功能之间启用Razor 3支持:

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

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

希望这能帮助其他人!!


0

你尝试过手动重置智能感知吗?

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


我曾经不得不这么做。可能是问题所在,请告诉我如果它不起作用,也许我可以推荐其他的方法。顺便说一下……我尝试将其发布为评论而不是答案。不确定为什么我不能这样做。 - Eric Bishard
"所有语言"选项卡没有任何智能提示选项,而C#选项卡则已经正确设置了(我认为)。 - Jeremi Stadler
该死。你看了相关帖子吗? - Eric Bishard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接