ASP.NET MVC 的一个配置节点

环境: IIS 7.5,IIS 集成模式, VS 2012,Chrome.
    用VS新建一个MVC4项目时,会在根目录下的web.config和view 目录下的web.config文件里自动添加<add key="webpages:Enabled" value="false" />这样一个节点。
    这表示什么意思,从字面上很难看出来。于是google了一把。大概意思是说禁止你直接访问view目录下面的.cshtml和.vbhtml这样的文件(比如通过浏览器输入URL访问)。否则会给出“This type of page is not served.”这样的错误提示。于是开始试验,通过浏览器直接访问view里面的Index.cshtml文件。给出的错误提示却是“The resource cannot be found.”用Chrome打开网络监视是一个404的错误。
    虽然结果都是不能直接访问文件,但现象和网上描述的完全不一样。于是在view目录下面添加一个html页面直接访问。给出的也是“The resource cannot be found.”这样的错误,于是猜想是不是MVC默认情况下直接禁止访问view目录下的文件。
这时候突然想到前段时间用HttpForbiddenHandler来处理直接访问一些文件,如Excel文件。给出的错误提示也是“The resource cannot be found”。于是猜想.cshtml是不是也被类似的handler给处理了,果然在view目录下面的web.config里面发现这样的节点:<handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers>(此配置是针对IIS 7.5集成模式的配置,另外一个类似的配置是针对的经典模式或者低版本的IIS)。注释掉该节点,直接浏览Index.cshtml,出现的错误提示果然是“This type of page is not served.”这是一个403的错误。

时间: 2024-12-15 11:14:00

ASP.NET MVC 的一个配置节点的相关文章

asp.net中web.config配置节点大全详解【转】

web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录. (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Framework"v2.0.

ASP.NET MVC使用RenderSection渲染节点

几天没有时间做ASP.NET mvc练习,忙于ERP的二次开发.忙里间,想起MVC还有很多基础的知识需要撑握与了解.记得以前有练习过<MVC母版页_Layout.cshtml> http://www.cnblogs.com/insus/p/3380419.html 渲染Body(RenderBody)的功能.今天练习一下RenderSection渲染节点吧. 在Views\Shared目录下,创建一个Layout Page: 取个名字为_LayoutPage1.cshtml: 第#13行代码:

[ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》

[ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>      [ASP.NET MVC2 系列] ASP.Net MVC教程之<ASP.NET MVC 概述>     [ASP.NET MVC2 系列] 理解MVC应用程序的执行过程     [ASP.NET MVC2 系列] ASP.NET MVC Routing概述      [ASP.NET MVC2

ASP.NET MVC提交一个较复杂对象至WCF Service

前一篇<jQuery.Ajax()执行WCF Service的方法>http://www.cnblogs.com/insus/p/3727875.html 我们有练习在asp.net mvc应用程序中,POST 数据去wcf service并执行方法.本篇的练习是提交较复对象至wcf service执行方法.前一篇中,它只传递两个参数.如果我们平时开发,需要传递过多的参数时,那得需要写很多个参数.因此产生此篇,把较多个参数,创建为一个对象.然后只传递这个对象至wcf service即可. 下面

这算是ASP.NET MVC的一个大BUG吗?

这是昨天一个同事遇到的问题,我觉得这是一个蛮大的问题,而且应该不是ASP.NET MVC的设计者有意为之,换言之,这可能是ASP.NET MVC的一个大Bug.StackOverflow上也有对这个问题的描述http://stackoverflow.com/questions/1775170/asp-net-mvc-modelstate-clear 闲话少说,我们通过一个简单的问题重新这个问题.首先我们 定义了如下一个默认的HomeController,它具有一个默认Action方法Index.

asp.net MVC漏油配置总结

URL构造 命名参数规范+匿名对象 routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 构造路由然后添加 Route myRoute = new Route("{c

asp.net mvc 伪静态路由配置

asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 来自为知笔记(Wiz)

Asp.net MVC Web.config配置技巧

一.视图引入命名空间的设置 之前经常写这样的代码,而且每个页面都要写: @model IEnumerable<MvcStart.Models.People_Model> 其实有一种很方便的方法,可以通过配置Views文件夹里的Web.config来简化代码.Views文件夹里的Web.config里面的这个地方. <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHost

新的框架,新的感觉ASP.NET MVC 分享一个简单快速适合新手的框架

在ASP.NET世界中摸爬滚打好几年,用过了各种框架,在最初的ASP.NET web from 到现在的MVC 在起初的经典三层,到现在的MVC  IOC  注入 . 突然发现,有些时候真不是跟风用一些框架就好,   那到底用什么框架呢,我个人认为,只要自己用起来哦哦顺手就是最好的框架. 下面就分享下我自己写的框架, 实际上也是经典的三层模式+工厂模式 后期会增加支持Mssql,mysql ORM我用的是EF+Dapper    EF更多的做修改,删除,添加操作    Dapper更多做的是查询