ASP.NET MVC中的一个Web.config而不是每个Views文件夹的多个

Tom*_*rek 4 c# asp.net asp.net-mvc web-config razor

我的ASP.NET MVC Web应用程序有5个方面.每个区域都有自己的Views文件夹,其中包含自己的文件夹Web.config.这使得6个配置文件与Web.config应用程序根目录中的main一起.它使管理有点困难.

据我所知,这些配置有两件事(至少默认情况下):

1.)默认情况下,将Razor主机工厂设置为包含选定的命名空间.

2.)Views通过使用a处理请求,阻止直接访问文件夹中的文件HttpNotFoundHandler.

所有这些Web.config文件中的代码对我来说几乎是相同的,在我看来,这似乎不是管理这些配置的好方法.如果我添加更多区域或更细致地组织我的代码,我最终可能只有5个Web.config文件.我为什么需要这么多?还不够吗?

我对以下几点的看法如下:

ad 1.)是否所有这些命名空间都不能在应用程序根Web.config文件中导入一次,或者导入到_ViewStart.cshtml文件中?

广告2.)阻止访问所有文件夹中的所有代码文件,然后使用相反的方法 - 即更改文件夹中的静态文件(如Assets文件夹)来使用它是不是更有意义StaticFileHandler?原则上,对我来说,将允许读取的文件列入白名单StaticFileHandler而不是指定应该处理哪些文件似乎是一种更安全的方法HttpNotFoundHandler.

这可行吗?我错过了什么吗?有没有其他人遇到类似的问题,有太多的Views Web.config文件?

谢谢你的回答.

Den*_*els 5

只需将一个web.config文件放在Areas文件夹中,然后web.config从5个区域中的每个区域中删除单个文件.

在此输入图像描述

ASP.NET中的配置文件基于继承原则运行.MSDN文章 - ASP.NET配置文件层次结构和继承