Как я могу удалить элемент из строки запроса в asp.net с помощью C #? - PullRequest
52 голосов
/ 09 февраля 2009

Я хочу удалить строку запроса "Language" из моего URL. Как я могу это сделать ? (используя Asp.net 3.5, c #)

Default.aspx?Agent=10&Language=2

Я хочу удалить «Language = 2», но язык будет первым, средним или последним. так что у меня будет это

Default.aspx?Agent=20

Ответы [ 15 ]

0 голосов
/ 20 декабря 2017
string queryString = "Default.aspx?Agent=10&Language=2"; //Request.QueryString.ToString();
string parameterToRemove="Language";   //parameter which we want to remove
string regex=string.Format("(&{0}=[^&\s]+|{0}=[^&\s]+&?)",parameterToRemove);
string finalQS = Regex.Replace(queryString, regex, "");

https://regexr.com/3i9vj

0 голосов
/ 03 февраля 2015

хорошо, у меня есть простое решение, но есть небольшое использование javascript.

при условии, что строка запроса "ok = 1"

    string url = Request.Url.AbsoluteUri.Replace("&ok=1", "");
   url = Request.Url.AbsoluteUri.Replace("?ok=1", "");
  Response.Write("<script>window.location = '"+url+"';</script>");
0 голосов
/ 27 ноября 2012

Если у вас уже есть строка запроса в виде строки, вы также можете использовать простую манипуляцию со строкой:

int pos = queryString.ToLower().IndexOf("parameter=");
if (pos >= 0)
{
    int pos_end = queryString.IndexOf("&", pos);
    if (pos_end >= 0)   // there are additional parameters after this one
        queryString = queryString.Substring(0, pos) + queryString.Substring(pos_end + 1);
    else
        if (pos == 0) // this one is the only parameter
            queryString = "";
        else        // this one is the last parameter
            queryString=queryString.Substring(0, pos - 1);
}
0 голосов
/ 09 февраля 2009

Да, в .NET нет классов для редактирования строк запроса. Вам придется либо использовать Regex, либо какой-либо другой метод изменения самой строки.

0 голосов
/ 09 февраля 2009

Возможно, вы захотите использовать регулярное выражение, чтобы найти параметр, который вы хотите удалить из строки запроса, затем удалите его и перенаправьте браузер в тот же файл с новой строкой запроса.

...