какова функция веб-страниц: включено в MVC 3 web.config

200

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

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

в моем файле web.config делает?

ftnilsson
источник
1
Было бы полезно отметить, что происходит, если это установлено, и вы пытаетесь просмотреть файл .chstml. Вы получаете сообщение об ошибке «Этот тип страницы не обслуживается». Потратил на это часы: / stackoverflow.com/questions/12533605/…
Дейв Сверски,

Ответы:

239

webPages:enabledценностные falseпредотвращают .cshtmlили .vbhtmlфайлы в Viewsпапке из которых непосредственно доступны через веб - браузер.

Нил Найт
источник
21
На самом деле это предотвращает прямой доступ к ним независимо от того, где они находятся в приложении. В папке views, в корне, в другой папке ... не имеет значения, что вы получаете ту же ошибку. 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, они теперь анализируются и пытаются их просмотреть.
Brunis
WebPages: Enabled включает, независимо от того, является ли значение true или false, значение по умолчанию - null.
Brunis
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. Вы можете убедиться сами здесь .
Лукаш Новотны
По какой документации?
Киссаки
1

Чтобы разрешить обслуживание страниц Razor, недостаточно установить <add key="webpages:Enabled" value="true" />. Вам также необходимо добавить пакет Microsoft.AspNet.WebPages для packages.configиспользования NuGet.

Рон Инбар
источник