2012-11-02 12 views
8

Więc zacząłem niedawno z ASP.NET MVC 4. Używam maszynki do golenia. Moje pytanie dotyczy plików widoku, z sufiksem cshtml. Wydaje mi się, że są one kompilowane do plików * .cs przez maszynkę do golenia, które z kolei są następnie kompilowane do MSIL. (Wzorzec, który jest znany z moich dni jako programista JSP). Jednym z powodów, dla którego robię to założenie, jest to, że jeśli wprowadzę niepoprawny kod C# do pliku cshtml, otrzymam komunikat kompilacji wyświetlany w następujący sposób:ASP.NET MVC lokalizowanie plików CS wygenerowane z cshtml?

linia 34: public class _Page_Views_BaseDataAdmin_Index_cshtml ...

a linia 34 nie wskazuje gdzie jest błąd w pliku cshtml, podobnie jak klasa wydaje _Page_Views_BaseDataAdmin_Index_cshtml odnieść się do zwykłego klasy nie .net pogląd plik.

Moje pytanie brzmi: Gdzie znajdę plik CS? W szczególności w powyższym przykładzie "_Page_Views_BaseDataAdmin_Index_cshtml.cs"? Może muszę dodać trochę konfiguracji, aby powiedzieć MVC, aby zachować ten plik .cs na dysku, jeśli tak, jak to zrobić?

Dzięki!

+1

Co jest powodem, którzy chcą wiedzieć, gdzie te pliki się znajdują? W przeważającej części nie powinniście ich potrzebować. – nerdybeardo

+1

W chwili obecnej z powodów pedagogicznych. Poznawcze usposobienie istot ludzkich jest często takie, że wiedza/zrozumienie jest w większości oparte na wcześniejszej wiedzy. A ponieważ jestem bardziej zaznajomiony z C# niż ze składnią brzytwy, pomogłoby mi to zrozumieć widok wygenerowanego C#. Ale jestem pewien, że są też inne powody. –

+0

Oprócz ciekawości edukacyjnej, nie ma powodu, aby patrzeć na wygenerowane pliki .cs. – jrummell

Odpowiedz

5

Skompilowane widoki można znaleźć w folderze Temporary ASP.NET Files.

Najpierw znajdź .compiled plik odpowiadający widoku (np home.cshtml): home.cshtml.a8d08dba.compiled

Plik ten zawiera nazwę zespołu: montaż = "App_Web_hkc53urb"

plik .cs będzie nazwą zespół łączone z numerem: App_Web_hkc53urb.1.cs

łatwiejszy podejście może być użycie Szukaj w Windows swojej nazwy widoku w katalogu tymczasowym ASP.NET.

11

Szybkie wskazówka, aby znaleźć wygenerowane pliki, należy dodać do pliku .cshtml.

to od razu Ci pokazać pełną ścieżkę

<div>This file is compiled to @this.GetType().Assembly.CodeBase</div> 
+0

Czy to nie pomoże, jeśli kompilacja się powiedzie? –

+0

Tak, to musi skompilować, aby znaleźć początkowy folder, ale jeśli próbujesz debugować niedziałającą stronę, możesz znaleźć żądany plik, wyszukując w tym folderze za pomocą opcji "znajdź w plikach", aby uzyskać aktualną nazwę pliku - coś podobnego do 'App_Web_5d1gwd4o.16.cs'. Wróć do wersji kompilowanej, uważając, aby nie stracić zmian. Jeśli następnie zaktualizujesz plik '.cstml', ten sam plik zostanie zaktualizowany i będzie można go przejrzeć. –

Powiązane problemy