可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm playing around with MVC 5 RC 1 in Visual Studio 2013 RC. Works very well.
Now I upgraded an existing MVC 4 project in VS 2012 to MVC 5 the same way as described here
I also changed the web.config(s) - see "upgrading from MVC4 to MVC5"
Everything (build, run web app, even intellisense) works perfectly except the syntax highlighting of Razor/C# code in views.
I also tried it with an MVC 5 project created in VS 2013. Same result. So I assume VS 2012 doesn't "understand" the new assemblies?!
Any known workaround or ideas to get highlighting back?
回答1:
Microsoft released a new version of ASP.NET Web Tools for VS 2012.
After installing syntax highlighting is back again.
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
Installing VS 2012 Update 4 was not enough.
A set of offline installers is available. The offline installers are easier to use than the Web Platform Tools invoker (WebNode11Pack.exe @ ~114KB):
If you want an offline installer then please goto http://www.microsoft.com/en-us/download/details.aspx?id=41532
- AspNetWebTools2013_1Setup.exe @ ~39MB
- WebToolsExtensionsVS.msi (for Visual Studio 2012 standard edition[s]) @ ~21MB
- WebToolsExtensionsVWD.msi (for Visual Studio 2012 free "Web" edition[s]) @ ~21MB
回答2:
ASP.NET and Web Tools 2013.1 for Visual Studio 2012 has now been released and should resolved the MVC5 intellisense issue with VS 2012.
This release brings a ton of great improvements, and include some
fantastic enhancements to ASP.NET MVC 5, Web API 2, Scaffolding and
Entity Framework to users of Visual Studio 2012 and Visual Studio 2012
Express for Web.
You can download the update: 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
To Moderator: It might be just a download link, but this resolve the issue, it worked for me and it worked for the users that voted this as answer. If you are going to delete it please provide a reason, thanks!
回答3:
This answer claims that VS2012 can't understand Razor 3, so you (and me) will have to upgrade to VS2013
回答4:
I am currently using a workaround to get the IntelliSense working in VS2012 (I assume that this would not work properly a) if I was using VS2013 for the same project; b) if I tried using Razor 3 features):
Change the web.config to use old webpages
version:
<add key="webpages:Version" value="2.0.0.0" />
To make sure that this does not impact the production in any way I added a web.config transformation:
<add key="webpages:Version" value="3.0.0.0" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
Unfortunately this workaround has issues (that I have noticed so far):
- Extension methods (like
Html.RenderPartial()
are not recognized and show up as error in the designer).
回答5:
I got this answer from Microsoft developer:
MVC 5/Razor 3 tooling support for VS 2012 has not shipped yet. We hope to ship this support in Mid November.
So the accepted answer is true for now but we can plan to soon have this support in VS2012 as well.
回答6:
install the "ASP.NET and WebTools 2013.1 for Visual Studio 2012" in the Microsoft Platform Installer
回答7:
For me, my issue was that I had my build files being output to a directory other than bin
. Once my files we're output to bin
, then my syntax highlighting came back.
One way to fix this is to create a post-build action which copies the files in the project-rooted bin folder (vs a filter outside of the project) to your target directory.
The following article explains:
http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/