我正在为我的最终项目开发一个网络,并且是ASP.NET和这个论坛的新手。 对所有帮助我的人都有帮助。
问题是...... 例如我有2页。
page1.aspx.cs(此页面通过网络模块从mikrokontroler接收变量) 示例mikrokontroler发送变量“status”= 1
protected void Page_Load(object sender, EventArgs e)
{
NameValueCollection POST = Request.Form;
int STATUS;
int responcode;
try
{
A = int.Parse(POST["status"]);
}
catch (Exception)
{
status = 0;
}
if (A == 1)
{
responcode = 200;
//when A = 1, i want to store A value to (buffer on something <-- this what i want to ask)).
so i can call the value anytime in page2.
}
else
{
responcode = 400;
}
Response.StatusCode = responcode;
}
}
}
page2.aspx (第2页有按钮和文本框)
protected void Button3_Click(object sender, EventArgs e)
{
/*when this button click,
i want to show A value from page1
*/
}
答案 0 :(得分:1)
您可以使用会话
NameValueCollection POST = Request.Form;
int STATUS;
int responcode;
try
{
A = int.Parse(POST["status"]);
}
catch (Exception)
{
status = 0;
}
if (A == 1)
{
responcode = 200;
//when A = 1, i want to store A value to (buffer on something <-- this what i want to ask)).
Session["Avalie"] = A;
so i can call the value anytime in page2.
}
else
{
responcode = 400;
}
Response.StatusCode = responcode;
}
}
然后在第2页
protected void Button3_Click(object sender, EventArgs e)
{
/*when this button click,
i want to show A value from page1
*/
if(!String.IsNullOrEmpty( Session["Avalie"] ))
int Aval = int.Parse(Session["Avalie"]);
}
答案 1 :(得分:1)
您有很多选项来存储变量值:
这一切都取决于存储数据的范围:会话数据是当前用户/会话的本地数据,并将在预定义的超时(def:20分钟)后过期,应用程序将对您的所有用户/会话全局,并将过期当你重新启动应用程序时(通过iis,iisreset,重新编译......),缓存是全局的,并且将根据调用的参数到期,数据库和xml是全局的并且将保持状态。
在你的情况下,我将使用数据库或应用程序商店,因为微控制器和用户生活在不同的会话中,并且应用程序缓存不是一种合适的消息传递机制,而Xml自己引入了一些问题(例如:文件系统权限,数据复制。 ..)。
写:
Application["status"] = A;
读:
int A = 0;
bool result = int.TryParse(Application["status"],out A);
顺便说一句:要解析整数,你可以跳过try / catch部分:
int A = 0;
bool result = int.TryParse(POST["status"],out A);
在这种情况下,如果无法解析A将等于0;
答案 2 :(得分:0)
一个选项是将值分配给第一页中的静态变量 请参阅Static Classes and Static Class Members (C# Programming Guide)
另一个选择是使用状态变量作为会话状态变量或应用程序变量 请参阅ASP.NET Session State Overview和ASP.NET Application State Overview
答案 3 :(得分:0)
使用crosspagepostback将值从一个页面传递到另一个页面(在asp.net 2.0中引入)