公共类文件 common.cs :此文件,我已添加,点击 add-> new items->类
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");
文本框中的值存储在c.v变量
中所以,现在,我想在另一个名为 ulogin.aspx.cs
的网页文件中的textbox1.text中给出的值我使用了这段代码:
common d=new common();
d.da();
Label1.Text = Convert.ToString(d.n);
但运行后显示值为0 .....
答案 0 :(得分:2)
在网络应用程序中,您需要将信息保存在常见的位置(每个用户信息通常Session
或每个应用程序信息Application
),以便可以在不同的页面和放大器之间使用;应用程序中的用户控件。
我建议在您的网页上添加会话支持的属性。 usercontrol访问公共会话[“变量”]。如下所示。
(即假设您的代码在点击按钮时被激活)
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 :(得分:1)
有许多用户访问同一页面,他们可能会设置不同的值,预期结果是用户在 Page 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;
}
}
}
您可以使用查询字符串将值从一个页面传递到另一个页面。
Page 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"]);
}
还有更多方法......您必须选择适合您的方案的内容。
答案 2 :(得分:0)
如果页面ulogin.aspx被设计为始终从a1.aspx重定向,则在ulogin.aspx中设置PreviousPageType并通过this.PreviousPage实例获取以前的页面值。 (跨页回发)
答案 3 :(得分:0)
将成员v转换为common的属性。将common存储到Session变量中。一旦准备好获取值,就将会话变量转换为common并从那里访问v属性。