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


200

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

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

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



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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.