一、编译过程
二、重定向的原理302
1、 客户端发送请求到当前页面;
2、 当前页面封装报文,返回状态码302和新url地址;
3、 浏览器解析当前的报文,看到是302,浏览器发起新请求到新的url地址
this.Response.Redirect(“FrmPostDemo.htm”);
三、自增:(理解Http协议是无状态的)
(一)需求:
每点一次提交,text中的数值加1。
(二)实现:
html+一般处理程序:SelfIncrease.htm、IncreaseProcess.ashx。其中SelfIncrease.htm作为模板,IncreaseProcess.ashx实现自增。
1、SelfIncrease.htm
2、IncreaseProcess.ashx
![](https://img-my.csdn.net/uploads/201207/22/1342968005_2183.png)
二、重定向的原理302
1、 客户端发送请求到当前页面;
2、 当前页面封装报文,返回状态码302和新url地址;
3、 浏览器解析当前的报文,看到是302,浏览器发起新请求到新的url地址
this.Response.Redirect(“FrmPostDemo.htm”);
三、自增:(理解Http协议是无状态的)
(一)需求:
![](https://img-my.csdn.net/uploads/201207/22/1342968015_6830.png)
每点一次提交,text中的数值加1。
(二)实现:
html+一般处理程序:SelfIncrease.htm、IncreaseProcess.ashx。其中SelfIncrease.htm作为模板,IncreaseProcess.ashx实现自增。
1、SelfIncrease.htm
<body>
<form action="IncreaseProcess.ashx" method="post" >
<input type="hidden" name="_viewState" value="@1" />
自增数据:<input type="text" name="num" value="@value" />
<input type="submit" value="提交表单" />
</form>
</body>
2、IncreaseProcess.ashx
public class IncreaseProcess : IHttpHandler {
public int num = 0;
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";
//将html文件模板读取出来
string fileData = System.IO.File.ReadAllText(context.Request.MapPath("SelfIncrease.htm"));
//第一次请求
//context.Request["_viewState"]是传递给ashx页面的参数,第一次为null
if (context.Request["_viewState"] == null)
{
//这里的@value是从模板中读取的,不是传递过来的参数,所以不为null
var dataFirst = fileData.Replace("@value", "0");
context.Response.Write(dataFirst);
return;
}
//非第一次
//把前台提交过来的值转成int
var text = context.Request["num"];
int.TryParse(text, out num);
num++;
string dataPostBack = fileData.Replace("@value", num.ToString());
context.Response.Write(dataPostBack);
}
public bool IsReusable {
get {
return false;
}
}
}