ASP.NET 中 整个站点web.config 与 不同文件夹下的web.config 的 多web.config 相关配置

本例的站点结构图示为:

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

 

posted on 2007-03-03 12:00  freeliver54  阅读(1603)  评论(0编辑  收藏  举报

导航