• 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

     

  • 相关阅读:
    01
    王天宇0703作业
    0706作业
    0705作业
    0704作业
    0703作业
    数据库死锁语句脚本
    项目问题 : 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
    工厂模式(Factory Patter)
    修改DevExpress中英文提示,将英文改为中文
  • 原文地址:https://www.cnblogs.com/freeliver54/p/662627.html
Copyright © 2020-2023  润新知