C# 如何在DropDownList SelectedIndexChanged事件上更新查询字符串和重新加载页面?

C# 如何在DropDownList SelectedIndexChanged事件上更新查询字符串和重新加载页面?,c#,asp.net,drop-down-menu,query-string,C#,Asp.net,Drop Down Menu,Query String,有Dropdownlist哪些语言?如何在每次更改下拉列表中的选定项时重新加载页面 protected void DDLLanguages_SelectedIndexChanged(object sender, EventArgs e) { if (Request.RawUrl.Contains("Language") == false ) { Response.Redirect(Request.

有Dropdownlist哪些语言?如何在每次更改下拉列表中的选定项时重新加载页面

  protected void DDLLanguages_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Request.RawUrl.Contains("Language") == false )
            {
                Response.Redirect(Request.RawUrl + "?Language=" + DDLLanguages.SelectedValue);
            }
            else
            {
             //i need to update the quesry string here 

            }

        }

接受的答案将清除所有现有的查询字符串值

// parse url into UriBuilder //
var uri = new UriBuilder(Request.RawUrl);

// parse query part of url into a NameValueCollection //
var query = HttpUtility.ParseQueryString(uri.Query);

// update/create "Language" entry in the NameValueCollection //
query["Language"] = DDLLanguages.SelectedValue;

// put updated NameValueCollection back into uri querystring //
uri.Query = query.ToString();

// redirect page to updated uri //
Response.Redirect(uri.ToString());

尝试使用ddlanguages.SelectedItem.Text或ddlanguages.SelectedValue.ToString()。如果参数不存在,是否会添加
“Language”
参数?如果不存在,则会添加键。查询字符串对象继承自具有此行为的NameValueCollection。
// parse url into UriBuilder //
var uri = new UriBuilder(Request.RawUrl);

// parse query part of url into a NameValueCollection //
var query = HttpUtility.ParseQueryString(uri.Query);

// update/create "Language" entry in the NameValueCollection //
query["Language"] = DDLLanguages.SelectedValue;

// put updated NameValueCollection back into uri querystring //
uri.Query = query.ToString();

// redirect page to updated uri //
Response.Redirect(uri.ToString());