Web.Config dosyası bir MVC projesinin görünümler klasöründe ne yapar?


85

Uygulamamı dağıtmada bazı sorunlar yaşıyorum ve sorun giderme sırasında klasördeki Web.Configdosyayla karşılaştım Views. Sorunum için kaynakların olasılıklarını daraltma girişiminde, o ~ Web.Config` dosyasının amacını bulmaya çalıştım ama gerçekten fazla bilgi bulamadım.

Yani temelde sorularım:

  1. Web.configDosya Viewsbir MVC projesinin klasöründe ne yapar ?
  2. Gerekli mi?

Asp.Net web formlarında, bir klasörde ayrı bir web.config dosyası kullanmak için bu klasörün IIS'de sanal bir klasör olarak ayarlanması gerektiğine inanıyorum. MVC'de durum bu mu (yani Viewsklasörün sanal bir klasör olarak yapılandırılması gerekiyor mu)?


15
"Aptalca" soru yok
contactmatt

8
"Aptalca" sorular sormaktan asla korkmayın. Cevabı bilmiyorsanız, o zaman "aptalca" değil. Bir şeyi daha iyi anlamanın "aptalca" bir yanı yok.
DazManCat

4
SO,
napalm'da

Yanıtlar:


79

Hayır, bu fazladan web.config dosyası nedeniyle sanal bir klasör yapılandırmanıza gerek yoktur.

Web.config dosyası, denetleyiciniz dışında herhangi bir yolla görünümlerinize erişimi önlemek için Görünümler klasörlerinde bulunur. MVC tasarım modelinde, denetleyicilerin istekleri yönlendirmesi ve çağıran istemciye işlenmiş bir görünümü döndürmesi beklenir.

Diğer bir deyişle, www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx adresinden görünüm gerektiğini değil doğrudan erişilebilir.

Web.config dosyasına göz atarsanız, aslında HttpNotFoundHandlertüm yollara ve fiillere kaydeder :

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

Veya IIS 7'de şöyle görünebilir:

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

21
Ancak oluşturulan web.config çok miktarda başka metin içeriyor - bunların hepsi gereksiz mi?
Eamon Nerbonne

7

Ad alanlarının içe aktarılması gibi görünümler için derleyiciyi yapılandırır ve görünümler klasörünün bir 404 döndürmesini sağlar.


7

Görünümler klasöründeki web.config dosyası, görünüm klasörünün içindeki sayfalara uygulamak istediğiniz bazı özel ayarları yapmaktır.

Bağlantı dizesi / uygulama ayarları vb. Gibi yapılandırma ayarları gibi.

ancak bu yalnızca bu klasör için geçerli olacaktır ve projenin geri kalanı, ayarları kökte bulunan web.config dosyasından alacaktır.

Özellikle alan kavramını kullandığınızda, her alan için ayrı ayarlar uygulayabileceğiniz ayrı web.cfg dosyası içeren her alan için ayrı klasör olacaktır.


6

Bu, üst kısımda belirtilen bir şeyi geçersiz kılmak istiyorsanız web.config, yani Viewsklasör kapsamında bir şeyi özelleştirmek istiyorsanız .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.