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?



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.


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)


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.

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.