Как передать несколько параметров в строке запроса
у меня есть три ценности, которые я должен передать в качестве параметров, например, strID,strName и strDate.
Я хочу, чтобы перенаправить эти три параметра на другую страницу Response.Redirect().Может ли кто-нибудь предоставить мне правильную строку запроса?
6 ответов:
(Ниже приведен текст связанного раздела записи Википедии.)
структура
типичный 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)));
Это можно сделать с помощью:
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