public void ProcessRequest(HttpContext context)
{
int a = 0;
if (!string.IsNullOrEmpty(context.Request.Form["isPostBack"]))
{
string strNum = context.Request.Form["txtInc"];
int.TryParse(strNum, out a);
a=a+1;
}
//为什么用get传参就不能实现自增,而用post就可以实现自增
context.Response.Write("<form action='' method='post'><input type='text' name='txtInc' value='" +
a.ToString() + "'/><input type='hidden' name='isPostBack' value='1'/><input type='submit'/></form>");
}
post请求:context.Request.Form[""] 接收
get请求:context.Request.QueryString[""] 接收
两者都可以用:context.Request[""] 和context.Request.Params[""] 接收
你的代码错在逻辑,debug一下就看出来了,应该这么写(a在外面定义,要不每次都清零了):
GET版本:
int a = 0;
public void ProcessRequest(HttpContext context)
{
if (!string.IsNullOrEmpty(context.Request.QueryString["isPostBack"]))
{
string strNum = context.Request.QueryString["txtInc"];
int.TryParse(strNum, out a);
a = a + 1;
}
//为什么用get传参就不能实现自增,而用post就可以实现自增
context.Response.Write("<form action='' method='get'><input type='text' name='txtInc' value='" +
a.ToString() + "'/><input type='hidden' name='isPostBack' value='1'/><input type='submit'/></form>");
}
POST版本:
int a = 0;
public void ProcessRequest(HttpContext context)
{
if (!string.IsNullOrEmpty(context.Request.Form["isPostBack"]))
{
string strNum = context.Request.Form["txtInc"];
int.TryParse(strNum, out a);
a = a + 1;
}
//为什么用get传参就不能实现自增,而用post就可以实现自增
context.Response.Write("<form action='' method='post'><input type='text' name='txtInc' value='" +
a.ToString() + "'/><input type='hidden' name='isPostBack' value='1'/><input type='submit'/></form>");
}
如果用context.Request[""] 或者context.Request.Params[""]接收 那么不管提交方式了 get和post提交都能接收到!
a定义在ProcessRequest内也是可以的,你可以运行试试,主要问题在:
if 判断也要改,都用 context.Request.QueryString["isPostBack"]
@壹卄の➹: 在内的确不影响结果 但是
debug一下就知道,每次都会申明a=0;
你的例子中 a只要申明一次就ok了,之后的累加是在服务器和浏览器之间不断传递a的值 达到累加的效果
定义在里面不影响结果是因为:进了if判断,客户端的浏览器拿到服务器端的a的值又赋了一次值,so 定义a虽然不影响结果,但是是无用功
context.Request.Form 是接受post参数的,你用context.Request.Querystring 是接受get请求参数的,用context.Request[""] 这个是接受get和post都可以的
按照你说的,我把代码改了一下,但还是没有实现预期的结果
int a = 0;
if (!string.IsNullOrEmpty(context.Request.Form["isPostBack"]))
{
string strNum = context.Request.QueryString["txtInc"];
int.TryParse(strNum, out a);
a=a+1;
}
context.Response.Write("<form action='' method='get'><input type='text' name='txtInc' value='" +
a.ToString() + "'/><input type='hidden' name='isPostBack' value='1'/><input type='submit'/></form>");
if 判断也要改,都用 context.Request.QueryString["isPostBack"]