dev*_*747 45 c# asp.net query-string
在网址的某处有一个&sortBy = 6.如何在单击按钮时将其更新为&sortBy = 4或&sortBy = 2?我是否需要编写自定义字符串函数来创建正确的重定向网址?
如果我只需要附加一个查询字符串变量,我会这样做
string completeUrl = HttpContext.Current.Request.Url.AbsoluteUri + "&" + ...
Response.Redirect(completeUrl);
Run Code Online (Sandbox Code Playgroud)
但我想要做的是修改现有的querystring变量.
Ahm*_*eed 119
要修改现有的QueryString值,请使用以下方法:
var nameValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
nameValues.Set("sortBy", "4");
string url = Request.Url.AbsolutePath;
Response.Redirect(url + "?" + nameValues); // ToString() is called implicitly
Run Code Online (Sandbox Code Playgroud)
我在另一个回复中详细介绍.
检索sortby的查询字符串,然后在完整的Url上执行字符串替换,如下所示:
string sUrl = *retrieve the required complete url*
string sCurrentValue = Request.QueryString["sortby"];
sUrl = sUrl.Replace("&sortby=" + sCurrentValue, "&sortby=" + newvalue);
Run Code Online (Sandbox Code Playgroud)
让我知道事情的后续 :)
祝好运
private void UpdateQueryString(string queryString, string value)
{
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
this.Request.QueryString.Set(queryString, value);
isreadonly.SetValue(this.Request.QueryString, true, null);
}
Run Code Online (Sandbox Code Playgroud)