2012. 4. 6. 12:52

현재 페이지에 있는 값을 다른 페이지에 전달하는 방법 중 겟(get}방식 다음으로 간편한 방법이 포스트(Post)방식입니다.
폼에 값을 실어 보낸다고 생각하시면 됩니다.

 

 

1 데이터 보내는 페이지 작성

샘플페이지를 2개 만듭니다.
test.aspx
post.aspx

 

시작 페이지에는 다음과 같이 작성합니다.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="DB_Test.test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
    	function goEdit()
        {
            document.edit.submit();
        }
    </script>
</head>
<body>
    <form name="edit" action="post.aspx" method="post">
		<input type="text" id="data" name="data"  value="테스트2" />
		<input id="Button1" type="button" value="button" onclick="goEdit()" />
	</form>

</body>
</html>

 

여기서 주의해야 하는 것이 포스트 방식으로 데이터를 넘길 때는 'name'로만 접근할 수 있습니다.

요즘 웹 표준에서 'name'대신 'id'를 사용할 것을 권장하고 있는 걸 생각하면......좀 그르치요?

 

'post.aspx'가 목표 페이지입니다.

 

 

2 ASP.NET 에서 데이터 받기

 'post.aspx'에 레이블을 추가하고 아래와 같이 비하인드 코드를 작성합니다.

protected void Page_Load(object sender, EventArgs e)
{
	Label1.Text = Request.Form["data"].ToString();
}

 

 

 

마무리

위의 예제에서 만약 좀 민감한 데이터가 있다면 하이든필드(HiddenField)같은 컨트롤을 이용하여 값을 전달할 수 있습니다.
(참고 : [ASP.Net]자바스크립트에서 비하인드로 값 넘기기)
하지만 그런 방식의 경우 겟(Get)방식보다는 덜하긴 하지만 위변조가 쉬운 편입니다.

비교적 가볍게 값을 전달할 수 있다는 점에서 쓸만합니다.

사실 특별한 경우가 아니라면 겟방식이 더 났죠-_-;
어차피 보안성에서 허접한 건 도찌니 개찌니이니까요 ㅎㅎㅎ

자바스크립트에서 문자열을 처리한 후 비하인드로 값 넘겨야 할 때 가끔 쓰긴 하는데 이것도 다른 방법들이 있어서 그닥 선호하는 방법은 아닙니다.

자신에게 맞게 사용하는 것이 중요하죠 ㅎㅎ