【问题标题】:Two Web.Config files in default MVC project默认 MVC 项目中的两个 Web.Config 文件
【发布时间】:2013-11-13 17:14:11
【问题描述】:

我在探索默认 MVC 5 项目的来源,发现创建了两个 Web.Config 文件。一个位于项目的根目录中,另一个位于 Views 的根目录中。为什么有两个?

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-5


【解决方案1】:

web.config 文件存在于 Views 文件夹中,以防止访问 通过控制器以外的任何方式查看您的视图。在 MVC 设计中 模式,控制器应该路由请求并返回一个 呈现给调用客户端的视图。换句话说,你的观点在 www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx 不应直接访问。

What does the Web.Config file do in the views folder of a MVC project

【讨论】:

    【解决方案2】:

    IIS 中的所有配置文件都是分层的。如果需要,您可以在每个目录中都有一个,并且每个较低级别的配置都会覆盖较高级别的配置。

    在机器级配置中,定义了每个部分的含义以及这些部分可以出现在哪些web.config 文件中,这构建了一个非常复杂的设置系统,可以在每个级别进行更改。例如,请参阅Working with Configuration Files in IIS 7 上的这篇文章,特别是 Configuration Levels

    部分

    对于 MVC 应用程序,顶级配置文件定义适用于整个项目的 Web 服务器和 Web 应用程序设置。 Views 文件夹中的 web.config 文件会在需要时覆盖这些设置,并添加仅适用于项目中实际 Razor 视图的其他设置,而不是(例如)App_Data 文件夹或 Global.asax .例如,您的视图的 web.config 添加了一个额外的程序集引用,该引用为 MVC 命名空间添加了一个 XML 标记,这仅在 HTML 页面的上下文中才有意义:

    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
    

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多