Как изменить значение HttpRequest QueryString в библиотеке классов? - PullRequest
0 голосов
/ 05 декабря 2011

как изменить значение 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;

1 Ответ

3 голосов
/ 05 декабря 2011

Это просто невозможно, потому что QueryString не устанавливается и класс sealed для загрузки.

Вы должны либо изменить строку запроса перед построением запроса, либоесли у вас есть только HttpRequest для работы, сохраните временную копию строки запроса (которую вы можете редактировать) и создайте еще одну HttpRequest с измененной строкой запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...