我想从我的url中删除"Language“querystring。我该怎么做呢?(使用Asp.net 3.5、c#)
Default.aspx?Agent=10&Language=2
我想删除"Language=2",但language将是第一个、中间或最后一个。所以我要这个
Default.aspx?Agent=20
发布于 2009-02-09 19:59:44
我刚才回答了一个similar question。基本上,最好的方法是使用类HttpValueCollection
,QueryString
属性实际上是.NET框架的内部属性。您可以使用Reflector获取它(并将其放入您的Utils类中)。通过这种方式,您可以像处理NameValueCollection一样操作查询字符串,但所有的url编码/解码问题都会自行处理。
HttpValueCollection
扩展了NameValueCollection
,并具有一个接受编码的查询字符串(包括与号和问号)的构造函数,并且它覆盖了ToString()
方法,以便稍后从底层集合重新构建查询字符串。
发布于 2009-02-09 19:51:37
如果它是HttpRequest.QueryString,那么您可以将集合复制到一个可写的集合中,并随心所欲地使用它。
NameValueCollection filtered = new NameValueCollection(request.QueryString);
filtered.Remove("Language");
发布于 2011-09-23 22:11:37
这里有一个简单的方法。不需要反射器。
public static string GetQueryStringWithOutParameter(string parameter)
{
var nameValueCollection = System.Web.HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());
nameValueCollection.Remove(parameter);
string url = HttpContext.Current.Request.Path + "?" + nameValueCollection;
return url;
}
这里需要QueryString.ToString()
,因为Request.QueryString
集合是只读的。
https://stackoverflow.com/questions/529551
复制相似问题