Razor syntax highlighting not working in VS 2012 w

2019-01-11 06:10发布

问题:

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/