쿼리 문자열에서 여러 매개 변수를 전달하는 방법
예를 들어 strID
, strName
및에 대한 매개 변수로 전달해야하는 세 가지 값이 있습니다 strDate
.
이 세 가지 매개 변수를에서 다른 페이지로 리디렉션하고 싶습니다 Response.Redirect()
. 누구나 올바른 쿼리 문자열을 제공 할 수 있습니까?
(다음은 Wikipedia 항목의 링크 된 섹션 텍스트입니다.)
구조
쿼리 문자열을 포함하는 일반적인 URL은 다음과 같습니다.
http://server/path/program?query_string
서버가 이러한 페이지에 대한 요청을 받으면 프로그램을 실행하고 (구성된 경우) query_string을 변경하지 않고 프로그램에 전달합니다. 물음표는 구분 기호로 사용되며 쿼리 문자열의 일부가 아닙니다.
웹 페이지의 링크에는 쿼리 문자열이 포함 된 URL이있을 수 있지만 HTML은 웹 브라우저가 쿼리 문자열을 생성 할 수있는 세 가지 방법을 정의합니다.
- ... 요소를 통한 웹 양식
- 구성이있는 요소의 ismap 속성을 통한 서버 측 이미지 맵
- 현재 사용되지 않는 요소를 통한 색인 검색
웹 양식
쿼리 문자열의 주요 용도는 웹 양식이라고도하는 HTML 양식의 내용을 포함하는 것입니다. 특히 field1, field2, field3 필드가 포함 된 양식을 제출하면 필드의 내용이 다음과 같이 쿼리 문자열로 인코딩됩니다.
field1=value1&field2=value2&field3=value3...
- 쿼리 문자열은 일련의 필드-값 쌍으로 구성됩니다.
- 각 쌍 내에서 필드 이름과 값은 등호로 구분됩니다. 값이 빈 문자열이면 등호를 생략 할 수 있습니다.
- 일련의 쌍은 앰퍼샌드 '&'(또는 ...로 생성되지 않은 HTML에 포함 된 URL의 경우 세미콜론, ';', 아래 참조)로 구분됩니다. 명확한 표준은 없지만 대부분의 웹 프레임 워크에서는 여러 값을 단일 필드에 연결할 수 있습니다.
field1=value1&field1=value2&field1=value3...
양식의 각 필드에 대해 쿼리 문자열에는 field = value 쌍이 포함됩니다. 웹 양식에는 사용자에게 표시되지 않는 필드가 포함될 수 있습니다. 이러한 필드는 양식이 제출 될 때 쿼리 문자열에 포함됩니다.
이 규칙은 W3C 권장 사항입니다. W3C는 앰퍼샌드를 엔티티 이스케이프하지 않고도 HTML 문서 내의 URL에서 application / x-www-form-urlencoded 쿼리 문자열을 허용하기 위해 모든 웹 서버에서 앰퍼샌드 구분 기호 [6]와 함께 세미콜론 구분 기호를 지원할 것을 권장합니다.
기술적으로 양식 콘텐츠는 양식 제출 방법이 GET 인 경우에만 쿼리 문자열로 인코딩됩니다. 제출 방법이 POST 인 경우 기본적으로 동일한 인코딩이 사용되지만 결과는 쿼리 문자열로 전송되지 않습니다. 즉, 양식의 작업 URL에 추가되지 않습니다. 오히려 문자열은 HTTP 요청의 본문으로 전송됩니다.
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz
리디렉션하기 전에 :
string queryString = Request.QueryString.ToString();
Response.Redirect("page.aspx?"+queryString);
이렇게 해보세요.
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);
그것은 나를 위해 잘 작동합니다.
참고 URL : https://stackoverflow.com/questions/724526/how-to-pass-multiple-parameters-in-a-querystring
'developer tip' 카테고리의 다른 글
온라인 IDE에서 이상하게 작동하는 프로그램 (0) | 2020.10.14 |
---|---|
ASP.Net 마스터 페이지 및 파일 경로 문제 (0) | 2020.10.14 |
Android UiThread (UI 스레드) 란? (0) | 2020.10.14 |
매개 변수에 점이있는 경로가 일치하지 않는 이유는 무엇입니까? (0) | 2020.10.14 |
Vim, 구문 강조를 다시로드하는 방법 (0) | 2020.10.14 |