2012-09-19 8 views
8

Podczas formatowania kodu Razor cshtml w Visual Studio 2012 (z Ctrl + K + D), jeśli model jest typem ogólnym, VS powoduje, że jest on pisany małymi literami. Na przykład:Formatowanie kodu programu Visual Studio 2012 w językach CSHTML powoduje generyczne typy modeli

@model IEnumerable<Content> 

konwertuje (rozważyć wszystkie małe litery zawartość):

@model IEnumerable<content> 

po formatowaniu. To powoduje, że kod się nie kompiluje. Czy to błąd, czy coś mi brakuje? Jak to naprawić?

+1

Zgłoszony błąd http://aspnetwebstack.codeplex.com/ workitem/828. Po prostu go przegłosuj. – lorond

+0

Tak samo dzieje się z VS 2013: Podczas gdy ustawienie "HTML -> Formatowanie -> Jako wpisane" zachowa obudowę, źródło będzie nadal wcięte niepotrzebnie. – springy76

Odpowiedz

11

Ten problem pochodzi z programu Visual Studio 2012, który nie rozpoznał go jako kodu brzytwy i traktował jako zwykły kod HTML. Uważam, że jest to błąd związany z VS 2012 i mam nadzieję, że wkrótce zostanie naprawiony. Jako tymczasowy fix, można to zrobić:

  1. Goto Narzędzia -> Opcje
  2. Wybierz Edytor tekstu -> HTML -> Formatowanie
  3. Ustaw spadek Client Tag dół "jak wszedł"

Mam nadzieję, że to pomoże.

2

Jeśli jest to nowy projekt w VS 2012, należy dodać poniższy wiersz kodu w sekcji <appSettings> swojego głównego web.config pliku:

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

Jeśli to było wcześniej istniejący projekt prawdopodobnie już miej ten klucz w swoim web.config. Upewnij się, że jest dla wersji 1.0.0.0 i nie 2.x lub 1.2.x

także upewnić się, że odniesienie do System.Web.WebPages projekt jest dla wersji 1.0.0.0 i nie 2.0.0.0

Po wprowadzeniu tych zmian trzeba następnie zamknij i ponownie otwórz program Visual Studio 2012!

+0

Ostatnia odpowiedź, jaką podałem, była bardziej kuli dla prawdziwego problemu. –

+1

Co zrobić, jeśli używasz stron internetowych 2.0.0.0? MVC4? – ysrb

+1

Moje inne rozwiązanie poniżej powinno wystarczyć. Musisz ustawić formatowanie tagów klienta zgodnie z wprowadzonymi. Pamiętaj tylko, aby zachować małe parametry, aby były zgodne ze standardami CSS, ponieważ Ctrl + K + D nie będzie już automatycznie tworzyć małych liter. –

0

Następujące pracował dla mnie z Visual Studio Professional, 2012, ASP.NET MVC 5 i Microsoft.System.Web.WebPages 3,0:

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

Ale to rozwiązanie nie działa natychmiast

Początkowo rozwiązanie Chris Haddox za czasowo webpages:Version:

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

nie działa dla mnie, miałem już ten klucz i ustawiono go na 1.0.0.0.

Ale ponieważ używam Visual Studio Profesjonalne 2012, ASP.NET MVC 5 i Microsoft.System.Web.WebPages 3,0 ...

Problem ten pokazał mi, że mój Web.Config webpages:Version została ustawiona 1.0.0.0, zmieniłem go na 3.0.0.0, ponieważ przeczytałem w innym artykule, który może być poprawny dla Microsoft.System.WebPages 3.0 i wciąż miałem błąd formatowania przez pewien czas.

Kontynuowałem wprowadzanie zmian w moim pliku .cshtml. Następnie wszystkie nagłe formatowanie zaczęło działać poprawnie. Może z budowania, ale nie sądzę, że zrobiłem kompilację, ale nie jestem tego pewien i wiem, że nie uruchomiłem ponownie programu Visual Studio 2012.

Powiązane problemy