如何存储post变量,以便在ASP.NET中随时调用该变量
本文关键字:变量 NET ASP 调用 何存储 存储 post | 更新日期: 2023-09-27 17:59:24
我正在为我的最后一个项目开发一个网站,我是ASP.NET和这个论坛的新手。感谢所有帮助我的人。
问题是。。。例如,我有2页。
page1.aspx.cs(此页面用于通过网络模块从mikrokontroller接收变量)示例mikrokontroller发送变量"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
*/
}
您有很多选项来存储变量值:
- 会话状态:会话["status"]=A
- 应用程序状态:应用程序["status"]=A
- asp网络缓存:使用cache.Add()
- 数据库:在这里我还会存储时间戳,以跟踪控制器的历史状态
- 本地XML文件
这一切都取决于存储数据的范围:会话数据是当前用户/会话的本地数据,将在预定义的超时(def:20mins)后过期,应用程序对所有用户/会话都是全局的,并且将在您重新启动应用程序时过期(通过iis、iisreset、重新编译…),缓存是全局的并且将根据调用参数过期,数据库和xml是全局的,将保持状态。
在你的情况下,我会使用数据库或应用程序存储,因为微控制器和用户生活在不同的会话中,应用程序缓存不是一种合适的消息传递机制,而Xml自己也会引入一些问题(例如:文件系统权限、数据复制…)。
写入:
Application["status"] = A;
读取:
int A = 0;
bool result = int.TryParse(Application["status"],out A);
BTW:要解析整数,可以跳过try/catch部分:
int A = 0;
bool result = int.TryParse(POST["status"],out A);
在这种情况下,如果无法解析,则A将等于0;
您可以使用会话
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"]);
}
使用跨页面回发将值从一个页面传递到另一个页面(在asp.net 2.0中引入)
一个选项是将值分配给第一页中的静态变量
参考静态类和静态类成员(C#编程指南)
另一种选择是将状态变量用作会话状态变量或应用程序变量
请参阅ASP.NET会话状态概述和ASP.NET应用程序状态概述