C# 如何在页面加载之前修复request.querystring

C# 如何在页面加载之前修复request.querystring,c#,asp.net,query-string,C#,Asp.net,Query String,我先前的问题是 我正在开发asp.net网站。但有一个问题。有重复的查询字符串,如下所示www.domainname.com/default.aspx?query=Value1&query=Value2 我习惯了太多这样的页面Request.QueryString[“Query”]。但是这个返回值Value1,Value2。我不想在太多的页面上解决这个问题。我想在页面加载之前修复查询字符串。我想这可能会在global.asax上写一些函数。但我不知道怎么写 你知道吗?我接受请求。查询字符串本身是

我先前的问题是

我正在开发asp.net网站。但有一个问题。有重复的查询字符串,如下所示
www.domainname.com/default.aspx?query=Value1&query=Value2
我习惯了太多这样的页面
Request.QueryString[“Query”]
。但是这个返回值
Value1,Value2
。我不想在太多的页面上解决这个问题。我想在页面加载之前修复查询字符串。我想这可能会在global.asax上写一些函数。但我不知道怎么写


你知道吗?

我接受请求。查询字符串本身是只读的。您可以设置自己的集合,其中包含您想要使用的任何内容:

public Dictionary<string, object> qsValues = new Dictionary<string, object>();

foreach (string key in Request.QueryString.Keys) {
    if (Request.QueryString[key].Count > 1) {
        qsValues[key] = Request.QueryString[key][0];
    }
    else {
        qsValues[key] = Request.QueryString[key];
    }
}
if (Request.QueryString["Query"].Count > 1) {
    queryValue = Request.QueryString[0];
}
    public static bool bi = false;
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (bi == false)
            {
                bi = true;
                Response.Redirect("MainPage.aspx?id=null");
            }
            else if (bi)
            {
                string s = Request.QueryString["id"].ToString();

                if (s != "null")
                {
                    switch (s)
                    {
                        case "News":
                            {
                                ProjectsManagment.Controls.AllNews n = new Controls.AllNews();
                                MainContentsAsp.Controls.Add(n);
                                break;
                            }
                        default:
                            break;
                    }
                }
            }
        }
    }