Mam problemy z wdrożeniem aplikacji i podczas rozwiązywania problemów natknąłem się na Web.Config
plik w Views
folderze. 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:
- Co robi
Web.config
plik wViews
folderze projektu MVC? - 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 Views
folder musi być skonfigurowany jako folder wirtualny)?
asp.net-mvc
web-config
Ola Karlsson
źródło
źródło
Odpowiedzi:
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
HttpNotFoundHandler
wszystkie ś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"/>
źródło
Konfiguruje kompilator pod kątem widoków, takich jak importowanie przestrzeni nazw, i sprawia, że folder widoków zwraca 404.
źródło
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.
źródło
Dzieje się tak, jeśli chcesz zastąpić coś wymienionego w górnej części
web.config
, tj. Jeśli chcesz dostosować coś w zakresieViews
folderu.źródło