5

我正在做一个巨大的 MVC 4 项目。我正在使用区域,它很棒。

但是,我希望,对于每个区域,使用自定义 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>

AI把这个文件放在这里:

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()
4

2 回答 2

5

您可以使用:

<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
于 2013-10-07T09:12:54.230 回答
1

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

更新

你看过这个答案吗?

于 2013-10-07T09:17:17.977 回答