我们要删除查询字符串(a,b,c,d),然后添加查询字符串(z)。例如:
输入:/example.com/?a=1&b=2&c=3&d=4&e=5&f=6
输出:/example.com/?&e=5&f=6&z=6
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (var key in Request.QueryString.AllKeys)
{
if (key != "a" && key != "b" && key != "c" && key != "d")
{
dict.Add(key, Request.QueryString[key]);
}
}
queryString = string.Join("&", dict.Select(x => x.Key + "=" + x.Value));
if (!string.IsNullOrEmpty(queryString ))
{
searchViewModel.CurrQS += "&z=6";
}
我已经做到了。但是,值得将其转换为字典,然后为此串起。还有其他更好的方法吗?
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (var key in Request.QueryString.AllKeys)
{
if (key != "a" && key != "b" && key != "c" && key != "d")
{
dict.Add(key, Request.QueryString[key]);
}
}
queryString = Request.RawUrl.Split(new[] {'?'})[0] +
string.Join("&", dict.Select(x => x.Key + "=" + x.Value));
if (!string.IsNullOrEmpty(queryString ))
{
queryString += "&z=6";
}
简单的方法是,如果您有URL,请执行此操作:
var stringURL = Request.RawUrl.Split(new[] {'?'});
var urlwithoutQuerystring=stringURL.First();
var newUrl = urlwithoutQuerystring + "?c=abc"
或喜欢这个
var stringURL = Request.RawUrl.Split(new[] {'?'})[0];
var newUrl = strinULR + "?c=abc"