mvc 4子目录中的web.config

时间:2012-11-08 14:15:25

标签: asp.net .net asp.net-mvc asp.net-mvc-4 web-config

这个问题似乎已经被问到了很多,但实际上没有一个能解决我的问题。我有一个带有区域的ASP.NET MVC4应用程序。在这个区域内,我有一个带有重写appsettings的web.config。尝试在区域内的控制器中读取这些设置时,似乎没有拾取这些设置。

-MyApp
    -Areas
        -MyArea
            -Controllers
                -MyController
            -Web.config
    -Web.config

MyApp\Web.config我有:

<appSettings>
    <add key="DefaultDisplayMode" value="Configuration" />
</appSettings>

MyApp\Areas\MyArea\Web.config我有:

<appSettings>
    <add key="DefaultDisplayMode" value="Review" />
    <add key="SubSetting" value="Testing" />
</appSettings>

MyController中,如果我查询应用设置,我会看到:

DefaultDisplayMode: Configuration

我希望看到:

DefaultDisplayMode: Review
SubSetting: Testing

我试过两个:

System.Configuration.ConfigurationManager.AppSettings["..."]
System.Web.Configuration.WebConfigurationManager.AppSettings["..."]

我甚至尝试过以下(顶部)结构而没有运气:

-MyApp
    -Areas
        -MyArea
            -Controllers
                -MyController
                -Web.config
            -Web.config
    -Web.config

有人知道为什么我的子目录appSettings无效吗?

1 个答案:

答案 0 :(得分:2)

IIS将根据URL加载web.config,而不是基于路由请求执行的代码。

您可以创建一个模仿所需路径的空文件夹结构,并在那里添加配置文件。如果这不起作用,您可以在主配置文件中使用<location>标记 - 但位置标记中的路径也必须与URL匹配,而不是代码。