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?



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.


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)


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.