яка функція веб-сторінок: Увімкнено в MVC 3 web.config


200

Я щойно розпочав новий проект MVC 3. Хто-небудь може мені сказати, що

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

у моєму файлі web.config?



1
Було б корисно відзначити, що станеться, якщо це встановлено, і ви спробуєте переглянути файл .chstml. Ви отримуєте помилку "Цей тип сторінки не подається". Відпрацьовані години на це: / stackoverflow.com/questions/12533605 / ...
Dave Swersky

Відповіді:


239

webPages:enabledзі значенням falseзаважає .cshtmlабо .vbhtmlфайлам у Viewsпапці бути безпосередньо доступним через веб-браузер.


21
Насправді це заважає їм отримати прямий доступ незалежно від того, де вони перебувають у програмі. У папці перегляду, в корені, в іншій папці ... не має значення, ви отримуєте однакову помилку. The type of page you have requested is not served because it has been explicitly forbidden
Нік Альбрехт

5
Чи не для цього призначена конфігурація "BlockViewHandler"? Яка різниця?
Том Пажурек

На жаль, запустив проект Nancy на Mono, і ця настройка з’явилася через nuget. Тож мені цікаво, це штука IIS і річ MVC 3, або яка частина стека фактично використовує цю настройку?
Френк Швітерман

Мені заборонено бачити перегляди за замовчуванням, але якщо я додаю це налаштування і встановлю його на значення false, вони зараз будуть проаналізовані та намагаються переглянути.
Бруніс

Веб-сторінки: Увімкнено, чи дозволяє це значення правдивим чи помилковим, значення за замовчуванням - нульовим.
Бруніс

28

Згідно з документацією, це запобігає прямому доступу до файлів .cshtml та .vbhtml ( www.myweb.com/views/home/index.cshtmlнаприклад)


1
Я шукав, але не можу знайти посилання, де це пояснено. Що я конкретно хотів би знати, це те, що є ефектом <add key="webpages:Enabled" value="???">цілковитого пропуску . За замовчуванням trueчи false?
StarNamer

2
Тому я заглибився у вихідний код, і значення за замовчуванням насправді null- це означає, що веб-сторінки ввімкнено, якщо програма містить будь-які файли *.cshtmlчи *.vbhtmlфайли. Перевірку файлів можна відключити, встановивши це значення на trueабо false. Ви самі можете побачити тут .
Lukáš Novotný

За якою документацією?
Кіссакі

1

Щоб дозволити розміщення сторінок Razor, його недостатньо <add key="webpages:Enabled" value="true" />. Вам також потрібно додати пакет Microsoft.AspNet.WebPages до packages.configвикористання NuGet.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.