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

标签 c# asp.net asp.net-mvc razor web-config

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

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

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

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

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

我的观点如下:

ad 1.) 不能将所有这些 namespace 都导入应用程序根 Web.config 文件中一次,或者导入到 _ViewStart.cshtml 文件?

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

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

感谢您的回答。

最佳答案

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

enter image description here

ASP.NET 中的配置文件基于继承原则运行。 MSDN 文章 - ASP.NET Configuration File Hierarchy and Inheritance

关于c# - ASP.NET MVC 中的一个 Web.config 而不是每个 Views 文件夹的多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761275/

相关文章:

c# - 了解 Windows Phone 开发中的数据绑定(bind)

C# - 解析 Soap 响应以提取数据

asp.net-mvc - 如何在 ASP.NET MVC5 中配置 structuremap.MVC 5 以忽略框架接口(interface)/类实例

c# - 在 Windows CE C# 应用程序上添加相机处理

c# - 将类属性作为参数传递

asp.net - CaSTLe Activerecord session 范围与事务范围和连接管理

asp.net - ASP 动态样式表链接 href ="<%=stylesheet%>"不工作

Asp.net/IIS 静态内容(例如图像)身份验证最佳实践

c# - T4MVC - 不同的 Controller 冲突

javascript - 页面加载时地理位置将值传递给 url.action