如何在类库中修改HttpRequest QueryString值,我当前可以获取QueryString值并修改,但如何将修改后的QueryString写入HttpRequest:
public static HttpRequest ModiQueryString(HttpRequest request)
{
var nv = new NameValueCollection(request.QueryString);
foreach (string key in nv.Keys)
{
nv[key] = "abc";
}
//here how to let request.QueryString equal nv
return request;
}
因为request.QueryString是只读的,所以我该怎么办? 谁可以帮助我?谢谢
如果我创建一个新的HttpRequest,我可以使用:
StringBuilder newQuery=new StringBuilder();
foreach(string key in nv.Keys)
{
newQuery.AppendFormat("{0}={1}",key,FilterKeyWord(nv[key]));
}
HttpRequest newRequest = new HttpRequest("", request.Url, newQuery.ToString());
return newRequest;
答案 0 :(得分:3)
这是不可能的,因为QueryString
无法设置且类sealed
无法启动。
您应该在构造请求之前修改查询字符串,或者如果您只有HttpRequest
可以使用,那么保留查询字符串的临时副本(您可以编辑)并构造另一个{{ 1}}使用修改后的查询字符串。