2013-10-07 26 views
4

我正在處理一個巨大的MVC 4項目。我正在使用Area,它很棒。區域中的子Web.config

但是,我想爲每個區域使用自定義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之間建立鏈接?

------ UPDATE --------

我嘗試把這個代碼在我的子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 

但我仍然得到一個「NullReferenceException異常」當我嘗試讀取密鑰值「MyArea_1_Param1」

我對讀取密鑰值碼:

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

回答

4

您可以使用:

<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 
+0

請參閱我的更新。我試過,也許很糟糕,因爲我仍然有NullReferenceException錯誤。 – Portekoi

+0

嗨看到我的更新回答 – Robert

1

默認情況下,每個區域的Web.config文件都放置在該區域的Views文件夾中。您可以使用它來添加僅在該特定區域中可見的自定義設置。

更新

你見過這個answer

+0

我以前嘗試過,但當我嘗試讀取我的鍵值時,我有一個「NullReferenceException」。 – Portekoi