Application也是可以用于页面间传值的一种方式。Application存储于服务器端,与Seesion最大的不同在于Application可以被访问网站的所有页面所有用户使用。
最常用的例子就是用于统计网站不同身份人访问量。
Application跟Seesion于Cookie一样,存值的方式都是键值对的方式。
Application[“键”]=值;
变量=(类型转换)Application[“键”];
代码
登陆界面
protected void click(object a, EventArgs s)
{
string userid = txtuser.Text;
string userpw = txtpw.Text;
if (usertype(userid) == 1 || usertype(userid) == 2)
Application.Lock();
switch(usertype(userid).ToString())
{
case "1":
if (Application["admin"] != null)
Application["admin"] = (int)Application["admin"] + 1;
else
Application["admin"] = 0;
break;
case "2":
if (Application["user"] != null)
Application["user"] = (int)Application["user"] + 1;
else
Application["user"] = 0;
break;
default:Response.Write("<script>alter(‘ID worry‘)</script");break;
}
Application.UnLock();
Response.Redirect("WebForm2.aspx?userid="+userid+"");
}
public int usertype(string userid)
{
if (userid == "admin")
return 1;
else
return 2;
}
主界面
protected void Page_Load(object sender, EventArgs e)
{
string userid = Request.QueryString["userid"].ToString();
Response.Write("welcome " + userid +"<br>");
if(Application["admin"]!=null)
Response.Write("admin visiti num is "+Application["admin"]);
if (Application["user"] != null)
Response.Write("user visiti num is " + Application["user"] );
}
运行结果
登陆界面输入
Admin
Admin
登陆
welcome admin
admin visiti num is 0
在不停止程序的情况下,再次打开页面,同样输入
welcome admin
admin visiti num is 1
在使用Application和其他传值对象之前都需要对其是否存在进行判断。
if (Application["admin"]
!= null)
在使用Application对象之前,通常都需要对其进行类型转换。
Application["admin"]
= (int)Application["admin"]
+ 1;
在后台代码可以很轻松的用这种方式弹出提示框,注意内容用单引号。
Response.Write("<script>alter(‘ID
worry‘)</script");
当弹出页面并需要传值的时候,通过URL的传值方式也是很方便的,但是注意的是这个值最好不是密码之类,因为这个值会在地址栏上显示,所以要么加密要么就换一种方法吧。
Response.Redirect("WebForm2.aspx?userid="+userid+"");
地址栏
http://localhost:26024/WebForm2.aspx?userid=admin
Application存储的应该是经常使用的值,如果一开始就有很大的数据量,建议用web.config。这个将在以后介绍。