ASP.NET WEB FORMS는 개발자에게 탁월한 이벤트 중심 개발 모델을 제공합니다. 그러나 이 간단한 애플리케이션 개발 모델은 몇 가지 작은 문제를 가져왔습니다. 예를 들어 기존 ASP 애플리케이션에서는 POST 메서드(request()/)를 통해 한 페이지에서 한 값 또는 여러 값을 쉽게 전송할 수 있습니다. request.form()/request.querystring())과 같은 방법으로 ASP.NET에서 구현하는 것은 다소 번거롭습니다. 이 상황을 해결하는 다른 방법은 다음과 같습니다. ASP.NET에서는 세 가지 방법을 제공하는데, 하나는 QueryString을 사용하여 해당 값을 전송하는 것이고, 다른 하나는 해당 값을 세션 변수를 통해 전송하는 것이고, 다른 하나는 Server.Transfer 메서드를 통해 구현하는 것입니다.
1. 쿼리스트링을 사용하세요
Querystring은 값을 전달하는 매우 간단한 방법입니다. 단점은 전송할 값이 브라우저의 주소 표시줄에 표시되고 이 방법에서는 개체를 전달할 수 없다는 것입니다. 이 방법은 너무 중요하지 않거나 단순한 값을 전달하려는 경우에 가장 적합합니다. 가치 전송 작업을 완료하기 위해 작은 예를 사용해 보겠습니다. 단계는 다음과 같습니다.
1. 웹 양식 만들기
2. 새 웹 양식에 버튼1을 배치하고 두 개의 TextBox1 및 TextBox2를 배치합니다.
3. 다음과 같이 버튼 버튼에 대한 클릭 이벤트 코드를 생성합니다.
개인 무효 버튼_클릭(개체 전송자,System.EventArgs e)
{
문자열 URL;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
응답.리디렉션(url);
}
4. 새 대상 페이지를 만들고 이름을 webform2로 지정합니다.
5. Label1과 Label2 두 개를 webform2에 배치합니다.
webform2의 Page_Load에 다음 코드를 추가합니다.
개인 무효 Page_Load(개체 전송자,System.EventArgs e)
{
Label1.Text=Request.QueryString["이름"];
Label2.Text=Request.QueryString["이메일"];
}
실행하면 전송 후 결과를 볼 수 있습니다.
2. 세션 변수를 사용합니다. 세션 변수를 사용하여 값을 전달하는 방법이 가장 일반적인 방법입니다. 이 방법은 값을 다음 페이지로 전달할 수 있을 뿐만 아니라 세션 변수의 값이 될 때까지 여러 페이지에 교차 전달할 수도 있습니다. 제거됩니다. 변수가 사라집니다. 예를 들어보세요:
1. 웹 양식 만들기
2. 새 웹 양식에 버튼1을 배치하고 두 개의 TextBox1 및 TextBox2를 배치합니다.
3. 다음과 같이 버튼 버튼에 대한 클릭 이벤트 코드를 생성합니다.
개인 무효 버튼_클릭(개체 전송자,System.EventArgs e)
{
세션["이름"]=TextBox1.Text;
세션["이메일"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4. 새 대상 페이지를 만들고 이름을 webform2로 지정합니다.
5. Label1과 Label2 두 개를 webform2에 배치합니다.
webform2의 Page_Load에 다음 코드를 추가합니다.
개인 무효 Page_Load(개체 전송자,System.EventArgs e)
{
Label1.Text=세션["이름"].ToString();
Label2.Text=세션["이메일"].ToString();
Session.Remove("이름");
Session.Remove("이메일");
}
실행하면 전송 후 결과를 볼 수 있습니다.
3. 서버를 사용하세요.전송
이 방법은 다소 복잡하기는 하지만 여전히 페이지에서 값을 전달하는 방법입니다.
예를 들어보세요:
1. 웹 양식 만들기
2. 새 웹 양식에 버튼1을 배치하고 두 개의 TextBox1 및 TextBox2를 배치합니다.
3. 다음과 같이 버튼 버튼에 대한 클릭 이벤트 코드를 생성합니다.
개인 무효(개체 전송자,System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}
4. 다음과 같이 TextBox1 및 TextBox2 컨트롤의 값 코드를 반환하는 프로세스를 만듭니다.
공개 문자열 이름
{
{return TextBox1.Text;}를 얻습니다.
}
공개 문자열 이메일
{
get{return TextBox2.Text;}
}
5. webform2라는 새 대상 페이지를 만듭니다.
6. Webform2에 두 개의 Label1과 Label2를 배치합니다.
webform2의 Page_Load에 다음 코드를 추가합니다.
개인 무효 Page_load(개체 보낸 사람,System.EventArgs e)
{
//웹폼 인스턴스 생성
webform1 wf1;
//인스턴스화된 핸들을 가져옵니다.
wf1=(webform1)Context.Handler;
Label1.Text=wf1.이름;
Label2.Text=wf1.Email;
}
이 세 가지 방법이 일반적입니다.