程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成.net頁面之間傳值傳參辦法匯總

C#完成.net頁面之間傳值傳參辦法匯總

編輯:C#入門知識

C#完成.net頁面之間傳值傳參辦法匯總。本站提示廣大學習愛好者:(C#完成.net頁面之間傳值傳參辦法匯總)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成.net頁面之間傳值傳參辦法匯總正文


本文實例總結了C#完成.net頁面之間傳值傳參辦法。分享給年夜家供年夜家參考。詳細完成辦法剖析以下:

1、QueryString傳值

普通來講,QueryString是一種異常簡略的傳值方法,他可以將傳送的值顯示在閱讀器的地址欄中。假如是傳遞一個或多個平安性請求不高或是構造簡略的數值時,可使用這個辦法。然則關於傳遞數組或對象的話,就不克不及用這個辦法了。以下面實例所示:

private void Button1_Click(object sender, System.EventArgs e)
{
     string s_url;
     s_url = "b.aspx?name=" + Label1.Text;
     Response.Redirect(s_url);
}
b.aspx中C#代碼:
private void Page_Load(object sender, EventArgs e)
{
     Label2.Text = Request.QueryString["name"];
}
query傳值又分類post ,get格局如

//post要求
string name = Request["name"].toString();
string name =Request.Form.Get("name").toString();
//get要求
string name = Request.QueryString["name"].toString();

但我發明 不管能否是post與get傳值都可用
string name = Request["name"].toString();
表單提交中get和post方法的差別歸結以下幾點:

1. get是從辦事器上獲得數據,post是向辦事器傳送數據。
2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段逐個對應,在URL中可以看到。post是經由過程HTTP post機制,將表單內各個字段與其內容放置在HTML HEADER內一路傳送到ACTION屬性所指的URL地址。用戶看不到這個進程。
3. 關於get方法,辦事器端用Request.QueryString獲得變量的值,關於post方法,辦事器端用Request.Form獲得提交的數據。
4. get傳送的數據量較小,不克不及年夜於2KB。post傳送的數據量較年夜,普通被默許為不受限制。但實際上,IIS4中最年夜量為80KB,IIS5中為100KB。
5. get平安性異常低,post平安性較高。

2、應用Application 對象變量

Application對象的感化規模是全部全局,也就是說對一切用戶都有用。其經常使用的辦法用Lock和UnLock。

a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
     Application["name"] = Label1.Text;
     Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
     string name;
     Application.Lock();
     name = Application["name"].ToString();
     Application.UnLock();
}

3、應用Session變量

想必這個確定是年夜家應用中最多見的用法了,其操作與Application相似,感化於用戶小我,所以,過量的存儲會招致辦事器內存資本的耗盡。

a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
     Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
     string name;
     name = Session["name"].ToString();
}
4、應用Cookie對象變量

這個也是年夜家常應用的辦法,與Session一樣,其是什對每個用戶而言的,然則有個實質的差別,即Cookie是寄存在客戶真個,而session是寄存在辦事器真個。並且Cookie的應用要合營ASP.NET內置對象Request來應用。

a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
     HttpCookie cookie_name = new HttpCookie("name");
     cookie_name.Value = Label1.Text;
     Reponse.AppendCookie(cookie_name);
     Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
     string name;
     name = Request.Cookie["name"].Value.ToString();
}
5、應用Server.Transfer辦法

這個才可以說是面象對象開辟所應用的辦法,其應用Server.Transfer辦法把流程從以後頁面引誘到另外一個頁面中,新的頁面應用前一個頁面的應對流,所以這個辦法是完整面象對象的,簡練有用。

a.aspx的C#代碼
public string Name
{
     get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
     Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
     a newWeb;   //實例a窗體
     newWeb = (source)Context.Handler;
     string name;
     name = newWeb.Name;
}
總結了這幾條,不外用得最多的算是QueryString。

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved