c# asp.net - Razor-Syntax-Hervorhebung funktioniert nicht in VS 2012 mit MVC 5




visual page (7)

Ich spiele mit MVC 5 RC 1 in Visual Studio 2013 RC. Funktioniert sehr gut.

Jetzt habe ich ein bestehendes MVC 4-Projekt in VS 2012 auf die gleiche Weise wie here beschrieben auf MVC 5 aktualisiert

Ich habe auch die web.config (s) geändert - siehe " Upgrade von MVC4 auf MVC5 "

Alles (build, run web app, sogar intellisense) funktioniert perfekt, außer der Syntax-Hervorhebung von Razor / C # -Code in Ansichten.

Ich habe es auch mit einem MVC 5-Projekt versucht, das in VS 2013 erstellt wurde. Gleiches Ergebnis. Ich nehme also an, dass VS 2012 die neuen Assemblies nicht "versteht" ?!

Irgendeine bekannte Problemumgehung oder Ideen, um Hervorhebung zurück zu bekommen?


Answers

Diese Antwort behauptet, dass VS2012 Razor 3 nicht verstehen kann, so dass Sie (und ich) auf VS2013 upgraden müssen


Installieren Sie "ASP.NET und WebTools 2013.1 für Visual Studio 2012" im Microsoft Platform Installer


ASP.NET und Web Tools 2013.1 für Visual Studio 2012 wurde jetzt veröffentlicht und sollte das MVC5-Intellisense-Problem mit VS 2012 beheben.

Diese Version bringt eine Menge großer Verbesserungen und enthält einige fantastische Verbesserungen für ASP.NET MVC 5, Web API 2, Gerüstbau und Entitätsframework für Benutzer von Visual Studio 2012 und Visual Studio 2012 Express für Web.

Sie können das Update herunterladen: 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

Zu Moderator: Es könnte nur ein Download-Link sein, aber das löst das Problem, es funktionierte für mich und es funktionierte für die Benutzer, die dies als Antwort gewählt haben. Wenn Sie es löschen möchten, geben Sie bitte einen Grund an, danke!


Ich verwende derzeit eine Problemumgehung, um das IntelliSense in VS2012 arbeiten zu lassen (ich nehme an, dass das nicht richtig funktionieren würde) a) wenn ich VS2013 für dasselbe Projekt verwendete; b) wenn ich Razor 3 Funktionen benutzt habe):

Ändern Sie die Datei web.config, um die alte webpages zu verwenden:

<add key="webpages:Version" value="2.0.0.0" />

Um sicherzustellen, dass dies die Produktion in keiner Weise beeinflusst, habe ich eine web.config-Umwandlung hinzugefügt:

<add key="webpages:Version" value="3.0.0.0" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />

Leider hat diese Problemumgehung Probleme (die ich bisher bemerkt habe):

  • Erweiterungsmethoden (wie Html.RenderPartial() werden nicht erkannt und erscheinen im Designer als Fehler).

Ich habe diese Antwort von Microsoft-Entwickler erhalten:

MVC 5 / Razor 3 Werkzeugunterstützung für VS 2012 wurde noch nicht ausgeliefert. Wir hoffen, diese Unterstützung Mitte November zu liefern.

Die angenommene Antwort ist also vorerst wahr, aber wir können planen, diese Unterstützung auch in VS2012 zu haben.


Für mich bestand mein Problem darin, dass meine Build-Dateien in ein anderes Verzeichnis als bin ausgegeben wurden. Sobald meine Dateien in bin ausgegeben wurden, kam meine Syntaxhervorhebung zurück.

Eine Möglichkeit, dies zu beheben, besteht darin, eine Post-Build-Aktion zu erstellen, bei der die Dateien im Ordner "project-rooted bin" (gegenüber einem Filter außerhalb des Projekts) in Ihr Zielverzeichnis kopiert werden.

Der folgende Artikel erklärt: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/


Ich fürchte, diese Antwort ist nicht unbedingt richtig. In meinem Windows 8.1 + Visual Studio 2013 für Web (12.0.30723.00 Update 3) gab es keinen ComponentModelCache-Ordner.

Stattdessen habe ich alle Updates für VS2013 ausgeführt und bin dann zur Systemsteuerung / Programme und Funktionen gegangen und habe eine Reparatur durchgeführt. Voila, das hat funktioniert und ich denke, es könnte eine bessere Gesamtlösung sein.





c# razor visual-studio-2012 visual-studio-2013 asp.net-mvc-5