Как передать несколько параметров в строке запроса



у меня есть три ценности, которые я должен передать в качестве параметров, например, strID,strName и strDate.



Я хочу, чтобы перенаправить эти три параметра на другую страницу Response.Redirect().Может ли кто-нибудь предоставить мне правильную строку запроса?

1756   6  

6 ответов:

Query_string

(Ниже приведен текст связанного раздела записи Википедии.)

структура

типичный URL-адрес, содержащий строку запроса, выглядит следующим образом:

http://server/path/program?query_string

когда сервер получает запрос на такую страницу, он запускает программу (если она настроена для этого), передавая query_string без изменений в программу. Вопросительный знак используется в качестве разделителя и не является частью запроса строка.

ссылка на веб-странице может иметь URL-адрес, содержащий строку запроса, однако HTML определяет три способа веб-браузер может генерировать строку запроса:

  • веб-форма через ... элемент
  • карта изображения на стороне сервера через атрибут ismap на элементе с конструкцией
  • индексированный поиск через теперь устаревший элемент

веб-формы

основное использование строк запроса состоит в том, чтобы содержит содержимое HTML-формы, также известной как веб-форма. В частности, при отправке формы, содержащей поля field1, field2, field3, содержимое полей кодируется в виде строки запроса следующим образом:

field1=value1&field2=value2&field3=value3...

  • строка запроса состоит из ряда пар поле-Значение.
  • в каждой паре имя поля и значение разделяются знаком равенства. Знак равенства может быть опущен, если значение пустое строка.
  • ряд пар разделяется амперсандом, ' & '(или точкой с запятой, ';' для URL-адресов, встроенных в HTML и не генерируемых a ...; смотреть ниже.) Хотя не существует определенного стандарта, большинство веб-фреймворков позволяют связать несколько значений с одним полем:

field1=value1&field1=value2&field1=value3...

для каждого поля формы строка запроса содержит пару field=value. Веб-формы могут содержать поля, которые не видны пользователю. включается в строку запроса при отправке формы

настоящая конвенция является рекомендацией W3C. W3C рекомендует, чтобы все веб-серверы поддерживали разделители с запятой в дополнение к разделителям амперсанда[6], чтобы разрешить строки запроса application/x-www-form-urlencoded в URL-адресах в документах HTML без необходимости экранировать амперсанды сущности.

технически содержимое формы кодируется только как строка запроса, когда метод представления формы GET. Такая же кодировка используется по умолчанию, когда метод отправки-POST, но результат не отправляется в виде строки запроса, то есть не добавляется в URL-адрес действия формы. Скорее, строка отправляется как тело HTTP-запроса.

Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

перед перенаправлением:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);

попробуйте как this.It должно работать

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
~mypage.aspx?strID=x&strName=y&strDate=z

Это можно сделать с помощью:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");

Я использую AbsoluteUri и вы можете получить его так:

string myURI = Request.Url.AbsoluteUri;
 if (!WebSecurity.IsAuthenticated) {
        Response.Redirect("~/Login?returnUrl="
            + Request.Url.AbsoluteUri );

затем после входа в систему:

var returnUrl = Request.QueryString["returnUrl"];
 if(WebSecurity.Login(username,password,true)){
                Context.RedirectLocal(returnUrl);

это хорошо работает для меня.

Comments

    Ничего не найдено.