2012-11-02 16 views
8

Son zamanlarda ASP.NET MVC 4 ile başladım. Jilet motoru kullanıyorum. Sorum şu, cshtml son eki ile ilgili görünüm dosyaları ile ilgilidir. Bana öyle geliyor ki, bunlar, daha sonra MSIL olarak derlenmiş olan * .cs dosyalarına jilet tarafından derlenmiştir. (Bir JSP geliştiricisi olarak günlerimden tanıdığım bir desen.) Bu varsayımı yaptığımın bir nedeni, cshtml dosyasına bazı geçersiz C# kodu girersem, şu şekilde görüntülenen bir derleme hatası alırım:ASP.NET MVC cs dosyalarını cshtml'den oluşturuluyor?

hat 34: public class _Page_Views_BaseDataAdmin_Index_cshtml: ...

Ve çizgi 34 hata _Page_Views_BaseDataAdmin_Index_cshtml düzenli .net sınıfına değil görünümü başvurmak gibi görünüyor sadece sınıf olarak, cshtml dosyasında nerede göstergesi değildir dosya.

Bu yüzden sorum şu: Cs dosyasını nerede bulabilirim? Özellikle, yukarıdaki örnekte, "_Page_Views_BaseDataAdmin_Index_cshtml.cs"? Belki de MVC'ye diskte bu .cs dosyasını tutmasını söylemek için bir yapılandırma eklemem gerekiyor, eğer öyleyse, bunu nasıl yaparım?

Teşekkürler!

+1

bu dosyalar nerede olduğunu bilmek isteyen nedeni nedir gösterecektir? Çoğunlukla bir şey için onlara ihtiyacınız olmamalı. – nerdybeardo

+1

Şu anda pedagojik nedenlerle. İnsanın bilişsel olarak yerleştirilmesi çoğu kez, bilgi/anlayışın çoğunlukla önceden var olan bilginin üzerine inşa edildiği şekildedir. Ve ben C# ile daha aşina olduğum için jilet sözdiziminden daha iyi anladım. Ama eminim başka sebepler de var. –

+0

Eğitim merakından başka, oluşturulan .cs dosyalarına bakmanın bir nedeni yoktur. – jrummell

cevap

5

Derlenmiş görünümleri Temporary ASP.NET Files klasörünüzde bulabilirsiniz.

İlk görünümünüz (: home.cshtml ex): karşılık gelen .compiled dosyayı bulmak home.cshtml.a8d08dba.compiled

Bu dosya derleme adı içeriyor: montaj = "App_Web_hkc53urb" App_Web_hkc53urb.1.cs

daha kolay bir yaklaşım kullanmak olabilir:

Sizin .cs dosyası bir sayı ile birleştirilmiş derleme adı olacak Windows, görünüm adınızı geçici ASP.NET dizininde arar.

11

Oluşturulan dosyaları bulmak için hızlı bir ipucu, bunu .cshtml dosyanıza eklemektir.

Bu hemen tam yolu

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

Bu sadece derlemenin başarılı olması durumunda yardımcı olmaz mı? –

+0

evet, başlangıç ​​klasörünü bulmak için derlemelisiniz, ancak çalışmayan bir sayfanın hatalarını ayıklamaya çalışıyorsanız, bu dosyayı "gerçekte dosya adını almak için" dosyaları bulmak için bu klasörde arama yaparak bulabilirsiniz. 'App_Web_5d1gwd4o.16.cs'. Sadece değişiklikleri kaybetmemek için dikkatli bir versiyona geri dönün. Daha sonra '.cstml' dosyasını güncellerseniz aynı dosya güncellenir ve daha sonra inceleyebilirsiniz. –