server.transfer 사용법

4650 단어
server.transfer 특징:
1: 여러분에게 익숙한 특징 중 하나는 서버입니다.transfer가 새 페이지로 이동할 때 브라우저의 주소는 바뀌지 않았습니다. (완전히 서버에서 진행되기 때문에 브라우저는 서버가 페이지 변환을 실행한 것을 전혀 몰랐기 때문입니다.) 어떤 경우에는 이런 효과가 필요합니다.(단, 페이지를 새로 고치면 브라우저가 사용자에게 다시 시도하여 양식을 보낼지 물어봅니다. 사용자가'예'를 누르면 양식의 데이터가 서버로 다시 보냅니다. 만약 양식에 데이터베이스에 기록을 삽입하는 것과 유사한 양식이 있다면 같은 양식은 여러 번 데이터베이스에 추가됩니다.)
2: 인터넷에서 자료를 찾아봤는데 기본적으로 Response에 비해Write,server.transfer가 더 효율적입니다. 완전히 서버에서 진행되기 때문에 클라이언트가 서버에 대한 요청을 줄일 수 있습니다
3: Server.Transfer는 Response 대신 로컬 가상 디렉토리에서 지정한 페이지로만 이동할 수 있습니다.Redirect는 이 요구 사항이 없습니다.
 
4: 인터넷용 서버를 보았습니다.Transfer는 페이지 간에 값을 전달하는 것을 배웠습니다. 개인적으로 이 방법으로 페이지 간에 많은 파라미터를 전달할 때 매우 유용합니다. 지금 그를 기록합니다. 
4.1: 페이지 a.aspx, b.aspx를 만들려면 a.aspx 페이지 사용자가 입력한'사용자 이름','성별','키'등 정보를 b.aspx 페이지에 전달해야 한다
    4.2:  a.aspx.cs              
public partial class _a : System.Web.UI.Page
{
    private string strName;
    private string strSex;

    public string StrSex
    {
        get { return this.ddlSex.Text; }
        set { strSex = value; }
    }

    public string StrName
    {
        get 
        {
            if (this.tbxName.Text == "")
            {
                return " ";
            }
            else
            {
                return this.tbxName.Text;
            }
        
        }
        set { strName = value; }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        Server.Transfer("b.aspx");
    }
}

 
4.3: b.aspx 페이지에 이 코드를 넣으면 뒤에서 계속할 수 없습니다
<%@ Reference Page="~/a.aspx"  %>

4.4:  b.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
        _a pageA = (_a)Context.Handler;
        Response.Write("" + pageA.StrName + "" + pageA.StrSex);
    }

좋은 웹페이지 즐겨찾기