网页的功能是啥:在 MVC 3 web.config 中启用
Posted
技术标签:
【中文标题】网页的功能是啥:在 MVC 3 web.config 中启用【英文标题】:what is the function of webpages:Enabled in MVC 3 web.config网页的功能是什么:在 MVC 3 web.config 中启用 【发布时间】:2011-06-20 15:24:52 【问题描述】:我刚刚开始了一个新的 MVC 3 项目。谁能告诉我是什么
<add key="webpages:Enabled" value="false" />
在我的 web.config 文件中有吗?
【问题讨论】:
blogs.msdn.com/b/marcinon/archive/2011/01/13/… 如果设置了此项并且您尝试浏览 .chstml 文件,请注意会发生什么情况会很有帮助。您收到错误“未提供此类页面”。花了几个小时在这个上:/ ***.com/questions/12533605/… 【参考方案1】:webPages:enabled
的值为 false
可防止从 Web 浏览器直接访问 Views
文件夹中的 .cshtml
或 .vbhtml
文件。
【讨论】:
实际上它可以防止它们被直接访问,无论它们位于应用程序中的哪个位置。在视图文件夹中,在根目录中,在不同的文件夹中......没关系,您会遇到相同的错误。The type of page you have requested is not served because it has been explicitly forbidden
这不是“BlockViewHandler”配置的用途吗?有什么区别?
抱歉,在 Mono 上运行 Nancy 项目,此设置通过 nuget 出现。所以我想知道,这是 IIS 的事情,MVC 3 的事情,还是堆栈的哪一部分实际使用了这个设置?
默认情况下我不允许查看视图,但如果我添加此设置并将其设置为 false,它们现在会被解析并尝试查看。
WebPages:Enabled 无论值为true还是false都启用,默认值为null。【参考方案2】:
根据文档,它可以防止直接访问 .cshtml 和 .vbhtml 文件(例如www.myweb.com/views/home/index.cshtml
)
【讨论】:
我一直在搜索,但找不到对此进行解释的参考。我特别想知道的是完全省略<add key="webpages:Enabled" value="???">
的效果是什么。默认是true
还是false
?
所以我已经深入研究了源代码,默认值实际上是null
- 这意味着如果应用程序包含任何*.cshtml
或*.vbhtml
文件,则启用网页。可以通过将此值设置为true
或false
来禁用检查文件。你可以自己看看here。
根据哪个文档?【参考方案3】:
要允许提供 Razor 页面,仅设置 <add key="webpages:Enabled" value="true" />
是不够的。您还需要使用 NuGet 将 Microsoft.AspNet.WebPages 包添加到 packages.config
。
【讨论】:
以上是关于网页的功能是啥:在 MVC 3 web.config 中启用的主要内容,如果未能解决你的问题,请参考以下文章