本例的站点结构图示为:
Web站点
--- 相关文件夹及文件
--- Default.aspx页面
Default.aspx.cs
--- web.config
--- A文件夹
--- Default.aspx页面
Default.aspx.cs
--- web.config
--- B文件夹
--- Default.aspx页面
Default.aspx.cs
--- web.config
实现如下效果:
A,B文件夹下的页面
既可使用自己文件夹下的配置文件中的配置
又能使用整个站点的配置文件中的配置
但不能使用不在自己文件夹下的配置文件的配置
其中 可以看成
A,B文件夹下的web.config 继承于整个站点的web.config
又扩展了符合自身文件夹下相关文件需要的相关配置
---------------------------------
示例代码如下:
整个站点的web.config中有如下一段配置
---------------
<connectionStrings>
<add name="webconfigForAll" connectionString="webconfigForAll" />
</connectionStrings>
A文件夹下的web.config中有如下一段配置
----------------
<connectionStrings>
<add name="webconfigForA" connectionString="webconfigForA"/>
</connectionStrings>
B文件夹下的web.config中有如下一段配置
----------------
<connectionStrings>
<add name="webconfigForB" connectionString="webconfigForB"/>
<remove name="webconfigForAll"/>
<add name="webconfigForAll" connectionString="webconfigForB-All"/>
</connectionStrings>
整个站点的Default.aspx.cs中有如下一段代码
----------------
protected void Page_Load(object sender, EventArgs e)
{
string strConfigAll = System.Configuration.ConfigurationManager.ConnectionStrings["webconfigForAll"].ToString();
string str = "整个站点文件夹下根web.config:->" + strConfigAll;
Response.Write(str);
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("../B/Default.aspx", true);
}
A文件夹下的Default.aspx.cs中有如下一段代码
----------------
protected void Page_Load(object sender, EventArgs e)
{
string strConfig = System.Configuration.ConfigurationManager.ConnectionStrings["webconfigForA"].ToString();
string strConfigAll = System.Configuration.ConfigurationManager.ConnectionStrings["webconfigForAll"].ToString();
string str = "自身A文件夹下的web.config:->" + strConfig + "<br/>"
+ "整个站点文件夹下根web.config:->" + strConfigAll;
Response.Write(str);
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("../B/Default.aspx", true);
}
B文件夹下的Default.aspx.cs中有如下一段代码
----------------
protected void Page_Load(object sender, EventArgs e)
{
string strConfig = System.Configuration.ConfigurationManager.ConnectionStrings["webconfigForB"].ToString();
string strConfigAll = System.Configuration.ConfigurationManager.ConnectionStrings["webconfigForAll"].ToString();
string str = "自身B文件夹下的web.config:-> " + strConfig + "<br/>"
+ "整个站点文件夹下根web.config:-> " + strConfigAll;
Response.Write(str);
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("../A/Default.aspx", true);
}
运行效果为:
----------
站点运行后-》整个站点下的Default.aspx
页面显示为:
整个站点文件夹下根web.config:-> webconfigForAll
点击按钮后:
-》转入B文件夹下的Default.aspx
页面显示为:
自身B文件夹下的web.config:-> webconfigForB
整个站点文件夹下根web.config:-> webconfigForB-All
点击按钮后:
-》转入A文件夹下的Default.aspx
页面显示为:
自身A文件夹下的web.config:-> webconfigForA
整个站点文件夹下根web.config:-> webconfigForAll
点击按钮后:
-》转入B文件夹下的Default.aspx