공룡호가 사는 세상 이야기

하이퍼링크 or Method=GET : Request.QueryString
폼Method="POST" : Request.Form

가끔, 어떤 경우는 GET 방식으로도, POST 방식으로도 같은 이름의 데이터가 넘어오는 경우가 있을 수 있다.
그러한 경우에는 동일한 이름을 사용하여 GET 혹은 POST로 넘어 오는 데이터를 얻어낼 수 있는 방법이 필요한데, 그러한 경우에는 어떻게 대처해야 하는가? Request 개체는 그러한 경우에 사용할 수 있는 특별한 컬렉션을 별도로 준비해 두었는데, 그것은 Params 이다.

Request.Params 속성은 내부적으로 QueryString과 Form을 모두 수행한다.
그러므로 ASP.NET 페이지가 어떠한 경우는 GET방식으로 넘어오는 "email" 이라는 이름의 값을 얻어내야 하고, 어떠한 경우는 POST 방식으로 넘어오는 "email"이라는 이름의 값을 얻어내야 한다면 다음과 같이 작성하여, 두 가지 모두의 경우를 대비할 수 있다.

Request.Params["email"]

이 코드는 내부적으로 먼저 email이라는 키에 대해서 QueryString을 수행하고, 그에 해당하는 값이 없으면 Form 작업도 수행한다. 그리고, 지정된 키에 해당하는 값을 찾으면 그 값을 읽어 온다. 또한, 이 코드는 다음과 같이 줄여서 사용할 수도 있다.

Request["email"]