asp.net頁面之間傳遞的方式

1.使用QueryString變量
傳送的值會顯示在瀏覽器之地址欄中
所以傳遞一個或多個安全性要求不高或是結構簡單之數值時,
可以使用這個方法,用QueryString變量接收值
QueryString傳值例子:
第一個網頁:
創建x.aspx的頁面

在前臺寫個超連接:

<a href="y.aspx?zhi=傳的值 ">鏈接地址傳送</a>
第二個網站:
創建y.aspx的頁面

在後臺寫:

     protected void Page_Load(object sender, EventArgs e)
        {
 
          
                string zhi = Request.QueryString["zhi"];//第一種QueryString傳值
                Response.Write(zhi);
            
        }
2.使用Application 對象變量
Application對象所有用戶都有效。其常用之方法用Lock和UnLock。

x.aspx頁面前臺:

 <form id="form1" runat="server">
    <div>
      名字:<asp:TextBox ID="NameTxt" runat="server"></asp:TextBox>
        <br />
        <asp:Button  ID="Button1" runat="server" text="Application上傳" OnClick="Button1_Click"/>
    </div>
    </form>


x.aspx頁面後臺:

    protected void Button1_Click(object sender, EventArgs e)
        {
            Application["name"] = NameTxt.Text;//把值存進去
            Response.Redirect("y.aspx");
        }
y.aspx頁面後臺:
private void Page_Load(object sender, EventArgs e)
{
   string name;
   Application.Lock();
            name = Application["name"].ToString();//把值取出來
            Application.UnLock();
            Response.Write(name);
}
3使用Form表單
編輯
Form這個肯定是大家使用中最多的用法之一,是基於HTML,可作爲靜態頁面傳送數據而且數據量比較大,而且數據保密,
所以,在傳值比較多對收集起來的數據又需要保密的時候才用Form傳值是相當方便的。
x.aspx頁面前臺:
  
 <form id="form1" runat="server">
    <div>
        名字:<asp:TextBox ID="NameTex" runat="server" ></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Form上傳" OnClick="Button1_Click" />
    
    </div>
    </form>


後臺:
    
  protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write("<form name='submit1' method='post' action='y.aspx'>");//把值提交到y.aspx
            Response.Write("<input id=\"myxi\" name=\"myxi\" type=\"hidden\" value=\"" + NameTex.Text+ "\"/>");//建一個隱藏字段設置name,id名字爲myxi,value值爲文本里面的值
            Response.Write("</form>");
            Response.Write("<script>");
            Response.Write("document.submit1.submit()");//把剛剛form提交上去
            Response.Write("</script>");
       
        }




y.aspx頁面後臺:
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Form["myxi"].ToString();
Response.Write(name);
}
4使用Session變量
操作與Application類似,作用於用戶個人,所以,過量之存儲會導致服務器內存資源之耗盡。
x.aspx頁面前臺:
  <form id="form1" runat="server">
    <div>
    名字:<asp:TextBox ID="NameTex" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Session上傳" OnClick="Button1_Click"/>
    </div>
    </form>
後臺:
   protected void Button1_Click(object sender, EventArgs e)
        {
            Session["name"] = NameTex.Text;
            Response.Redirect("y.aspx");
        }


y.aspx頁面後臺:
   protected void Page_Load(object sender, EventArgs e)
        {
            string name;
            name = Session["name"].ToString();
            Response.Write(name);
        }


5使用Cookie對象變量
編輯


Cookie和Session一樣,但是有個本質之區別,即Cookie是存放在客戶端之,而session是存放在服務器端之。
而且Cookie之使用要配合ASP.NET內置對象Request來使用。
x.aspx頁面前臺:
  <form id="form1" runat="server">
    <div>
     名字:<asp:TextBox ID="NameTex" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Cookie上傳" OnClick="Button1_Click" />
    </div>
    </form>
後臺:
        protected void Button1_Click(object sender, EventArgs e)
        {
            Request.Cookies.Clear();
            HttpCookie cookie_name = new HttpCookie("name");
            cookie_name.Value = NameTex.Text;
            Response.AppendCookie(cookie_name);
            Response.Redirect("y.aspx");
        }




y.aspx頁面後臺:
 protected void Page_Load(object sender, EventArgs e)
        {
            string name;
            name =Request.Cookies["name"].Value.ToString();
            Response.Write(name);
        }




6使用Server.Transfer方法


這個纔可以說是面象對象開發所使用之方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,
新之頁面使用前一個頁面之應答流,所以這個方法是完全面象對象之,簡潔有效。
x.aspx頁面前臺:
   
<form id="form1" runat="server">
    <div>
    名字:<asp:TextBox ID="NameTex" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Server.Transfer上傳" OnClick="Button1_Click"  />
    </div>
    </form>


後臺:
   
   public string Name
        {
            get { return NameTex.Text; }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Server.Transfer("y.aspx");
        }




y.aspx頁面後臺
 
    protected void Page_Load(object sender, EventArgs e)
        {
            x newWeb; //實例x窗體
            newWeb = (x)Context.Handler;
            string name;
            name = newWeb.Name;
            Response.Write(name);
        }




發佈了31 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章