request.querystring是根据地址栏信息获取数据的,在Form的Method为Get时,表单提交返回的地址是和ViewState相关的,其包含__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE等查询字符串,此时querystring可以根据相关信息,取得表单值。
request.form只有在Form的Method为Post时,才能获得表单控件,而此时地址信息不包含__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE等信息,所以querystring就不能获取的表单数据了。
例:下面我是一个测试两者区别的例子
页面代码:
< br />
< br />
< br />
< input id ="Text2" type ="text" value ="Form" name ="button1" />
< input id ="Submit1" type ="submit" value ="submit" />
< p id ="pRequestType" >
</ p >
< p id ="pForm" >
</ p >
< p id ="pQueryString" >
</ p >
< p id ="pQueryString_Form" >
</ p >
</ form >
Get方法:在表单提交后转到和Form的action指定的地址关联的地址,其封装了一些表层数据。
在地址栏直接输入http://localhost:1480/Default.aspx?a=1&b=2地址:
点击submit按钮:转到地址:http://localhost:1480/Default.aspx?__EVENTTARGET=gvDemo&__EVENTARGUMENT
Post方法:在表单提交后转到Form的action指定的地址。
在地址栏直接输入http://localhost:1480/Default.aspx?a=1&b=2地址:
点击submit按钮:转到地址:http://localhost:1480/Default.aspx?a=1&b=2s