【问题标题】:Sub Web.config in Area区域中的子 Web.config
【发布时间】:2013-10-07 09:05:33
【问题描述】:

我正在开发一个巨大的 MVC 4 项目。我正在使用 Area,它很棒。

但是,我想为每个区域使用自定义 Web.config。

例如,这是我的结构:

Root
Web.config
|
----Areas
--------MyArea_1
--------MyArea_2
----Web.config

在我的根 Web.config 中,我拥有所有连接。在我的 Sub Web.config 中,我想添加只涉及区域的“appSettings”。

在我的子 Web.config 中,例如:

<appSettings>
    <add key="MyArea_1_Param1" value="1"/>
    <add key="MyArea_1_Param2" value="2"/>

    <add key="MyArea_2_Param1" value="1"/>
</appSettings>

目前,我已将所有参数放在根 Web.config 中。

如何在不同的 Web.config 之间建立链接?

--------更新--------

我已尝试将此代码放入我的 Sub Web.config 中:

<?xml version="1.0" encoding="utf-8"?>
<location path="MyArea_1">
    <appSettings>
        <add key="MyArea_1_Param1" value="1"/>
        <add key="MyArea_1_Param2" value="2"/>
    </appSettings>
</location>

我把这个文件放在这里:

Root
Web.config
|
----Areas
--------MyArea_1
--------MyArea_2
----Web.config <- Here

我已经在这里尝试了:

Root
Web.config
|
----Areas
--------MyArea_1
------------Web.config
--------MyArea_2

但当我尝试读取键值“MyArea_1_Param1”时,我仍然收到“NullReferenceException”

我的读取键值的代码:

ConfigurationManager.AppSettings["MyArea_1_Param1"].ToString()

【问题讨论】:

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


    【解决方案1】:

    你可以使用:

    <location path="myarea">
      <appsetttings>
        <add key="MyArea_1_Param1" value="1"/>
      </appsettings>
    </location>
    

    并将这些 web.configs 放在区域目录下

    要在给定区域访问您的 web.config,您可以使用如下代码:

    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/Areas/MyArea1/Views/Web.config").AppSettings.Settings["MyArea1_Param1"].Value
    

    【讨论】:

    • 请看我的更新。我试过了,也许很糟糕,因为我仍然有 NullReferenceException 错误。
    【解决方案2】:

    每个区域的Web.config 文件默认放置在该区域的Views 文件夹中。您可以使用它来添加仅在该特定区域可见的自定义设置。

    更新

    你看到这个answer了吗?

    【讨论】:

    • 我之前尝试过,但是当我尝试读取我的键值时出现“NullReferenceException”。
    猜你喜欢
    • 2012-04-11
    • 2012-12-25
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多