본문 바로가기

개발 Tip/ASP .Net

[ASP.Net2.0] 마스터 페이지 사용시 Request 문제

* 마스터 페이지 사용시 Request 문제

1. 마스터 페이지를 사용을 안할 때

   - 마스터 페이지를 사용을 안할 때는 일반적으로 Request 개체를 사용

   ex1) String temp1 = Request.Params["이름"];
   ex2) String temp1 = Request.QueryString["이름"];
   ex3) String temp1 = Request.Form["이름"];
   ex4) String temp1 = Request["이름"];

   1번,2번 예제는 GET 방식일 때 사용, 3번 예제는 POST 방식일 때, 4번 예제는 GET, POST 방식 둘 다 사용 가능

2. 마스터 페이지를 사용할 때

   - 마스터 페이지를 사용할 때는 일반적인 방식의 Request로는 값을 얻어오지 못함.

   - 마스터페이지가 있고 마스터페이지 내 컨텐츠 페이지의 ID가 MainContent라면 다음과 같은 방식으로 가져와야 함.

   ex1) String temp1 = ((TextBox)Master.FindControl("MainContent").FindControl("이름")).Test;
   ex2) String temp1 = Request["ctl100$MainContent$이름"];

   위와 같은 방식으로 되는데 2번 방식에서 첫번째 $앞은 Control의 아이디인 듯 하고 그 다음은 컨텐츠 페이지의 ID, 마지막은 Control의 Name같이 사용을 해야 원하는 값을 얻어올 수 있음.

   편의상 1번 방식이 보기도 편하고 나중에 유지보수도 편할 듯 함.