2011-12-17 13 views
9

Cóż, myślę, że zespół ASP.NET MVC wydał dość znaczący błąd w podglądzie programisty asp.net mvc 4, lub robię coś głupiego ... Oto problem i kroki do odtworzenia.ASP.NET MVC 4 Dev Podgląd Razor w sekcjach Błąd

  1. Utwórz nowy MVC 4 aplikację mobilną
  2. utworzyć nowy rozdział w układzie (np. @RenderSection („głowa”, false))
  3. w akcji kontrolera po prostu wyrzucić wiadomości do ViewBag
  4. następnie w widoku, który korzysta z głównego układu, dodaj następujący kod poniżej.
@section head { 
    $(function() { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
} 

Zauważysz, że parser brzytwa rzeczywiście uważa, że ​​sekcja została zakończona dla jQuery na dom załadowanego kończąc klamra zamiast odcinka za zakończony klamrą. Próbowałem dokładnie ten sam kod w aplikacji asp.net MVC 3 i działało bez problemów.

Czy ktoś jeszcze natknął się na ten błąd w podglądzie programisty ASP.NET MVC 4?

+0

tak, ja! masz niekompletny kod javascript jako wynik, prawda? – tugberk

+0

Tak, to w zasadzie uważa, że ​​zostało zakończone. W jaki sposób ten podgląd dewelopera został wydany z błędem tak absurdalnym? Ponadto, jak nikomu nie napisali o tym! –

+0

Tak naprawdę próbowałem to opublikować, ale zawsze myślałem, że problem leży w moim kodzie (mój kod javascript był trochę skomplikowany). Chodzi mi o to, że to jest podgląd programisty, nie można się wiele spodziewać. Ponadto nie masz licencji na uruchomienie. wiesz to dobrze? Jeśli dev. podgląd wydmuchuje twoją maszynę, jest na ciebie, nie na MSFT. – tugberk

Odpowiedz

6

Szybki hack do rozwiązania tego problemu jest użycie < tekstu> bloków </text> wokół skryptu java. Oto, jak może wyglądać, dopóki zespół ASP.NET MVC nie rozwiąże problemu.

@{ 
<text> 
    $(function() 
    { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
</text> 
} 
0

Jak wspomniano powyżej, spróbuj tego w pliku cshtml ...

@section head { 
@{ 
    function JSMeth1() 
    { 
     // doing your stuff, razor parser wont suck 
    } 
}}