MVC的views目录访问资源文件

这段时间一直在研究ASP.NET MVC,正准备用其来做一个淘客网,呵呵

由于网站需要用到换肤技术,所以准备将所有模板和资源文件都放到Views目录里,这样管理起来也比较方便,但没想到原来在Views里是禁止了一切资源的访问的,我想这样设计可能是防止被人直接访问view所造成不便吧,不过对于现在我的需求来说,只有2种解决办法了:

1、将所有模板和资源文件放到另一个新建的目录里,如建一个 skins,但这样做就会失去了在Views下的一些MVC脚手架的功能(如直接添加view或者与controller之间直接跳转等)
2、想办法修改配置,让在Views目录里也可以直接访问资源文件

本来也想了要么在独立的content目录里再分类存放各个skin的资源文件,但觉得这样做比较麻烦,建立一个skin还要分别放到不同的地方,不好管理,所以只好想办法实现第2种方式了。

其实要解决Views里的限制也很简单,只需修改Views目录里的web.config文件即可 :cheerful:

在web.config里有这样一段配置

<httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
就是这里,限制了所有资源的访问,直接使用了HttpNotFoundHandler来处理了,因此我们只需指定限制特定的文件,不要全部禁止就可以了:
<httpHandlers>
      <add path="*.html" verb="*" type="System.Web.HttpNotFoundHandler" />
      <add path="*.ascx" verb="*" type="System.Web.HttpNotFoundHandler" />
      <add path="*.aspx" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
以上就只限制了3种文件的访问,因为考虑到一般模板文件用到的也是这几种啦,当然你可以根据需要自行添加,经过修改后,就可以直接在Views目录里使用所有资源文件了

posted on 2012-06-19 09:13  kobeycs  阅读(765)  评论(0编辑  收藏  举报

导航