[英]Using values from one aspx.cs file to another aspx.cs file with a common class
公共類文件common.cs :這個文件,我通過單擊add-> new items-> class添加
public class common
{
public int v,n;
public int da()
{
return n= v;
}
}
另一個文件:它是一個網頁文件名是a1.aspx.cs:
common c = new common();
c.v = Convert.ToInt32(TextBox1.Text);
c.da();
Response.Redirect("ulogin.aspx");
文本框中的值存儲在cv變量中
那么,現在,我想在另一個名為ulogin.aspx.cs的網頁文件中的textbox1.text中給出的值
我用過這段代碼:
common d=new common();
d.da();
Label1.Text = Convert.ToString(d.n);
但運行后顯示值為0 .....
在Web應用程序,你需要堅持(通常是信息的地方常見的Session
每用戶信息或Application
的每個應用程序的信息),以便它可以在應用程序的不同頁面和用戶控件之間使用。
我建議在你的頁面和usercontrol中添加一個Session支持的屬性,它訪問一個公共的Session [“variable”]。 像下面這樣的東西。
(即讓我們想象您的代碼是在點擊按鈕時被激活的)
a1.aspx.cs
public int ValueToStore
{
get
{
return Session["ValueToStore"] != null
? (int)Session["ValueToStore"]
: 0
}
set
{
Session["ValueToStore"] = value;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
ValueToStore = Convert.ToInt32(TextBox1.Text);
Response.Redirect("ulogin.aspx");
}
ulogin.aspx.cs
public int ValueToStore
{
get
{
return Session["ValueToStore"] != null
? (int)Session["ValueToStore"]
: 0
}
set
{
Session["ValueToStore"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = ValueToStore.ToString();
}
如您所見,您現在在兩個頁面之間存在一些代碼重復,因此下一步將考慮實現作為公共屬性的基頁,然后從a1.aspx&ulogin.aspx繼承該基頁。
即
public class a1 : BasePage
{
...
}
public class ulogin : BasePage
{
...
}
public class BasePage : System.Web.Page
{
//Put ValueToStore property here.
}
有許多用戶訪問同一頁面,可以設置不同的值,預期的結果是什么值由1需要的用戶設置要顯示在第2頁 。
任何Web技術都是無狀態的,因為它們使用的HTTP再次是無狀態的。
然而,有很多方法可以完成這項工作,每種方法都有各自的優勢。
請使用會話變量來存儲您的值,這是一種變量。
每個用戶都有不同的會話變量來存儲,並且它可用直到用戶注銷(即會話可用)
存儲:服務器內存
public class Common
{
public int? Data
{
get
{
if(Session["Data"]!=null)
{
return int.Parse(Session["Data"].ToString());
}
return null.
}
set
{
Session["Data"]=value;
}
}
}
您可以使用查詢字符串將值從一個頁面傳遞到另一個頁面。
第1頁
int value=1;
Response.Redirect("Page2.aspx?data="+value.ToString())
第2頁
if(!string.IsNullOrEmpty(Request["data"]))
{
int value=int.Parse(Request["data"]);
}
您還可以將值從一個頁面發布到另一個頁面。
第1頁(html)
<form action="page2.aspx" method="post">
<input type="hidden" name="data" value="1"/>
</form>
第2頁
if(!string.IsNullOrEmpty(Request["data"]))
{
int value=int.Parse(Request["data"]);
}
還有更多方法......你必須選擇適合你場景的方法。
如果頁面ulogin.aspx被設計為始終從a1.aspx重定向,則在ulogin.aspx中設置PreviousPageType並通過this.PreviousPage實例獲取以前的頁面值。 (跨頁回發)
將成員v轉換為common的屬性。 將common存儲到Session變量中。 一旦你准備好獲取值,將會話變量轉換為common並從那里訪問v屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.