Podczas zapoznawania się z ASP.NET .oraz MVC2 trafiłem na coś, co jest bardzo denerwujące. Mianowicie strony aspx nie są kompilowane podczas kompilacji samego projektu. Jaki jest tego skutek? Dodatkowa robota w poszukiwaniu błędów wynikających z literówek. Jednak do rzeczy….
Moja testowa aplikacja wypluła taki błąd:
Server Error in '/’ Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1002: ; expected
Source Error:
Line 14: <script src=”../../Scripts/MicrosoftMvcAjax.js” type=”text/javascript”></script> Line 15: <script src=”../../Scripts/MicrosoftMvcValidation.js” type=”text/javascript”></script> Line 16: <% Html.EnableClientValidation() %> Line 17: Line 18: <% using (Html.BeginForm()) {%> |
Z czego widać, że brakuje ; w linii 16-tej. Prosta i oczywista sprawa, jednak trochę irytująca, ponieważ podczas kompilacji Visual Studio nie poinformowało mnie o tym problemie, trafiłem na niego dopiero ruszając ten konkretny kawałek kodu przechodząc na odpowiednią stronę.
Co gorsze, jak otworzymy odpowiedni plik, wówczas VS raczy nas poinformować o błędzie:
Zatem jak sobie z tym poradzić?
Należy włączyć kompilację stron aspx. W tym celu wystarczy wyłączyć projekt
Poprzez wykonanie unload Project a następnie wprowadzić zmiany w pliku csproj
To co nas interesuje to wpis MvcBuildViews.
Zmieniając tą wartość na true powodujemy, że Visual Studio będzie kompilować również strony aspx i każda literówka jak wyżej zostanie wyłapana przy pierwszej kompilacji. Zatem po wprowadzeniu zmiany pozostaje zapisać zmiany w pliku oraz załadować projekt ponownie.
Wreszcie podczas kompilacji dostajemy błąd:
Pozostaje dodać zapomniany ; i pracować dalej.