apa fungsi halaman web: Diaktifkan di MVC 3 web.config

200

Saya baru saja memulai proyek MVC 3 baru. Adakah yang bisa memberi tahu saya apa

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

dalam file web.config saya tidak?

ftnilsson
sumber
1
Akan sangat membantu untuk mencatat apa yang terjadi jika ini disetel dan Anda mencoba menelusuri file .chstml. Anda mendapatkan kesalahan "Jenis halaman ini tidak dilayani." Menghabiskan berjam-jam untuk yang satu ini: / stackoverflow.com/questions/12533605/…
Dave Swersky

Jawaban:

239

webPages:enableddengan nilai falsemencegah .cshtmlatau .vbhtmlfile dalam Viewsfolder tidak dapat diakses langsung dari browser web.

Neil Knight
sumber
21
Sebenarnya itu mencegah mereka dari akses langsung tanpa memandang di mana mereka berada dalam aplikasi. Di folder tampilan, di root, di folder yang berbeda ... tidak masalah Anda mendapatkan kesalahan yang sama. The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht
5
Bukankah itu untuk konfigurasi "BlockViewHandler"? Apa bedanya?
Tom Pažourek
Maaf, menjalankan proyek Nancy di Mono dan pengaturan ini muncul melalui nuget. Jadi saya bertanya-tanya, apakah ini hal IIS, dan MVC 3, atau bagian tumpukan mana yang benar-benar menggunakan pengaturan ini?
Frank Schwieterman
Saya tidak diizinkan untuk melihat Tampilan secara default, tetapi jika saya menambahkan pengaturan ini dan menjadikannya false, mereka sekarang diurai dan berusaha dilihat.
Brunis
Halaman Web: Diaktifkan memungkinkannya apakah nilai itu benar atau salah, nilai defaultnya adalah nol.
Brunis
28

Menurut dokumentasi itu mencegah file .cshtml dan .vbhtml diakses secara langsung ( www.myweb.com/views/home/index.cshtmlmisalnya)

Lukáš Novotný
sumber
1
Saya sudah mencari, tetapi tidak dapat menemukan referensi di mana ini dijelaskan. Apa yang saya ingin tahu secara spesifik adalah apa efek dari menghilangkan <add key="webpages:Enabled" value="???">sama sekali. Apakah standarnya trueatau false?
StarNamer
2
Jadi saya sudah menggali ke dalam kode sumber dan nilai default sebenarnya null- yang berarti bahwa halaman web diaktifkan jika aplikasi berisi file *.cshtmlatau apa pun *.vbhtml. Memeriksa file dapat dinonaktifkan dengan menyetel nilai ini ke trueatau false. Anda dapat melihatnya sendiri di sini .
Lukáš Novotný
Menurut dokumentasi mana?
Kissaki
1

Untuk memungkinkan halaman Razor untuk dilayani, itu tidak cukup untuk set <add key="webpages:Enabled" value="true" />. Anda juga perlu menambahkan paket Microsoft.AspNet.WebPages untuk packages.configmenggunakan NuGet.

Ron Inbar
sumber