jaka jest funkcja stron internetowych: Włączone w MVC 3 web.config

200

Właśnie rozpocząłem nowy projekt MVC 3. Czy ktoś może mi powiedzieć co

<add key="webpages:Enabled" value="false" />

czy w moim pliku web.config?

ftnilsson
źródło
1
Przydałoby się zauważyć, co się stanie, jeśli zostanie to ustawione i spróbujesz przeglądać plik .chstml. Pojawia się błąd „Ten typ strony nie jest wyświetlany”. Spędziłem godziny na tym: / stackoverflow.com/questions/12533605/…
Dave Swersky

Odpowiedzi:

239

webPages:enabled z wartością false zapobiega .cshtmllub .vbhtmlplików w Viewsfolderze z bycia dostępny bezpośrednio z poziomu przeglądarki internetowej.

Neil Knight
źródło
21
W rzeczywistości uniemożliwia im to bezpośredni dostęp bez względu na to, gdzie znajdują się w aplikacji. W folderze views, w katalogu głównym, w innym folderze ... nie ma znaczenia, że ​​pojawia się ten sam błąd. The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht,
5
Czy nie do tego służy konfiguracja „BlockViewHandler”? Jaka jest różnica?
Tom Pažourek,
Przepraszamy, uruchamianie projektu Nancy na Mono, a to ustawienie pojawiło się za pośrednictwem nuget. Zastanawiam się więc, czy to jest sprawa IIS i MVC 3, czy też która część stosu faktycznie zużywa to ustawienie?
Frank Schwieterman
Domyślnie nie mogę wyświetlać widoków, ale jeśli dodam to ustawienie i ustawię wartość false, są one teraz analizowane i próbowane do wyświetlenia.
Brunis,
Strony internetowe: Włączone włącza to niezależnie od tego, czy wartość jest prawdą czy fałszem, wartość domyślna to null.
Brunis,
28

Zgodnie z dokumentacją uniemożliwia bezpośredni dostęp do plików .cshtml i .vbhtml ( www.myweb.com/views/home/index.cshtmlna przykład)

Lukáš Novotný
źródło
1
Szukałem, ale nie mogę znaleźć odniesienia, w którym to wyjaśniono. Szczególnie chciałbym wiedzieć, jaki jest efekt całkowitego pominięcia <add key="webpages:Enabled" value="???">. Jest domyślny truelub false?
StarNamer
2
Więc wkopałem się w kod źródłowy, a wartość domyślna to tak naprawdę null- co oznacza, że ​​strony internetowe są włączone, jeśli aplikacja zawiera jakieś pliki *.cshtmllub *.vbhtmlpliki. Sprawdzanie plików można wyłączyć, ustawiając tę ​​wartość na truelub false. Można zobaczyć na własne oczy tutaj .
Lukáš Novotný
Według jakiej dokumentacji?
Kissaki
1

Aby umożliwić wyświetlanie stron Razor, nie wystarczy ustawić <add key="webpages:Enabled" value="true" />. Musisz także dodać pakiet Microsoft.AspNet.WebPages do packages.configkorzystania z NuGet.

Ron Inbar
źródło