Co robi plik Web.Config w folderze widoków projektu MVC


85

Mam problemy z wdrożeniem aplikacji i podczas rozwiązywania problemów natknąłem się na Web.Configplik w Viewsfolderze. Próbując zawęzić możliwości źródeł mojego problemu, próbowałem znaleźć cel tego pliku ~ Web.Config`, ale tak naprawdę nie mogę znaleźć zbyt wielu informacji.

Zasadniczo moje pytania to:

  1. Co robi Web.configplik w Viewsfolderze projektu MVC?
  2. Czy to jest wymagane?

W przypadku formularzy internetowych Asp.Net uważam, że aby użyć oddzielnego pliku web.config w folderze, ten folder musi być ustawiony jako folder wirtualny w usługach IIS. Czy tak jest w przypadku MVC (tj. Czy Viewsfolder musi być skonfigurowany jako folder wirtualny)?


15
Nie ma „głupich” pytań
contactmatt

8
Nigdy nie bój się zadawać „głupich” pytań. Jeśli nie znasz odpowiedzi, nie jest to „głupie”. Nie ma nic „głupiego” w lepszym zrozumieniu czegoś.
DazManCat

4
SO jest znany z polewania użytkowników napalmem za zadawanie pytań ...
Pangamma

Odpowiedzi:


79

Nie, nie musisz konfigurować folderu wirtualnego z powodu tego dodatkowego pliku web.config.

Plik web.config znajduje się w folderach widoków, aby uniemożliwić dostęp do widoków w jakikolwiek inny sposób niż za pomocą kontrolera. We wzorcu projektowym MVC kontrolery mają kierować żądania i zwracać renderowany widok do klienta wywołującego.

Innymi słowy, widok na www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx nie powinien być bezpośrednio dostępny.

Jeśli zajrzysz do pliku web.config, faktycznie rejestruje on HttpNotFoundHandlerwszystkie ścieżki i czasowniki:

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

Lub w usługach IIS 7 może to wyglądać

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

21
Ale wygenerowany plik web.config zawiera ogromną ilość innego tekstu - to wszystko jest zbędne?
Eamon Nerbonne,

7

Konfiguruje kompilator pod kątem widoków, takich jak importowanie przestrzeni nazw, i sprawia, że ​​folder widoków zwraca 404.


7

Plik web.config w folderze views służy do wykonywania pewnych specjalistycznych ustawień, które chcesz zastosować do stron w folderze widoku.

Podobnie jak ustawienia konfiguracji, takie jak: parametry połączenia / ustawienia aplikacji itp.

ale będzie to miało zastosowanie tylko do tego folderu, a reszta projektu pobierze ustawienia z pliku web.config obecnego w katalogu głównym.

Szczególnie, gdy używasz koncepcji obszaru, dla każdego obszaru będzie osobny folder zawierający oddzielny plik web.cfg, w którym możesz zastosować osobne ustawienia dla każdego obszaru.


6

Dzieje się tak, jeśli chcesz zastąpić coś wymienionego w górnej części web.config, tj. Jeśli chcesz dostosować coś w zakresie Viewsfolderu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.