post:是通过http报文头传值(接收值的时候用Request.Form[""])
get:是通过地址栏Url传值(接受值的时候用Request.QueryString[""])
isPostBack:是判断是否为第一次加载或者说是否有表单提交
下面用一般处理程序解释post、get传值和isPostBack原理
post 传值:
public void ProcessRequest (HttpContext context) {
// 画出一个文本框和一个提交按钮
context.Response.Write(@"<form action='' method='post'><input type='text' name='txtName' />
<input type='submit' />
</form>");
// 用来接收文本框中的值
string name = context.Request.Form["txtName"];
context.Response.Write("您输入的是:" + name); // 第一次加载输出为空,在文本框中输入内容点击提交按钮会显示输入内容
}
=====================
Get传值:
public void ProcessRequest (HttpContext context) {
context.Response.Write(@"<form action='' method='get'><input type='text' name='txtName' />
<input type='submit' />
</form>");
string name = context.Request.QueryString["txtName"];
context.Response.Write("您输入的是:" + name);
}
==================
isPostBack原理:
public void ProcessRequest (HttpContext context) {
// 由于第一次加载context.Request.Form["isPostBack"]))为空值所以不会显示"您输入的是:" 文字
if (string.IsNullOrEmpty(context.Request.Form["isPostBack"]))
{
context.Response.Write(@"<form action='' method='post'><input type='text' name='txtName' />
<input type='submit' />
<input type='hidden' value='1' name='isPostBack'>
</form>");
}
else
{
context.Response.Write(@"<form action='' method='get'><input type='text' name='txtName' />
<input type='submit' />
<input type='hidden' value='1' name='isPostBack'>
</form>");
string name = context.Request.Form["txtName"];
context.Response.Write("您输入的是:" + name);
}
}