网页的功能是什么:在MVC 3 web.config中启用


200

我刚开始一个新的MVC 3项目。谁能告诉我

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

在我的web.config文件中吗?



1
注意如果设置了该选项并且您尝试浏览.chstml文件,将会发生什么,将很有帮助。您收到错误“不提供此类页面”。在这一个花了几个小时:/ stackoverflow.com/questions/12533605/...
戴夫Swersky

Answers:


239

webPages:enabled带有值的值false可防止通过Web浏览器直接访问.cshtml.vbhtml文件Views夹中的文件。


21
实际上,无论它们位于应用程序中的什么位置,它都可以阻止直接访问它们。在views文件夹中,在根目录中,在另一个文件夹中……都不会出现相同的错误。The type of page you have requested is not served because it has been explicitly forbidden
Nick Albrecht

5
这不是“ BlockViewHandler”配置的目的吗?有什么区别?
TomPažourek2014年

抱歉,在Mono上运行一个Nancy项目,此设置通过nuget出现。所以我想知道,这是IIS还是MVC 3,还是堆栈的哪一部分实际使用了此设置?
Frank Schwieterman 2015年

默认情况下,我不允许查看“视图”,但是如果我添加此设置并将其设置为false,则现在将对其进行解析并尝试查看。
布鲁尼斯,

WebPages:Enabled启用它,无论该值为true还是false,默认值为null。
布鲁尼斯

28

根据文档,它防止直接访问.cshtml和.vbhtml文件(www.myweb.com/views/home/index.cshtml例如)


1
我一直在搜索,但是找不到解释它的参考。我特别想知道的是,<add key="webpages:Enabled" value="???">完全省略它的作用是什么。是默认值true还是false
StarNamer 2014年

2
因此,我已经研究了源代码,默认值实际上是null-表示如果应用程序包含任何文件*.cshtml*.vbhtml文件,则启用网页。可以通过将此值设置为true或来禁用检查文件false。您可以在这里自己看到
卢卡斯·诺沃提尼

根据哪个文件?
基萨基

1

要允许投放Razor页面,仅进行设置是不够的<add key="webpages:Enabled" value="true" />。您还需要将Microsoft.AspNet.WebPages包添加到packages.config使用NuGet。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.