request.querystring和request.form的区别
request.querystring是根据地址栏信息获取数据的,在Form的Method为Get时,表单提交返回的地址是和ViewState相关的,其包含__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE等查询字符串,此时querystring可以根据相关信息,取得表单值。
request.form只有在Form的Method为Post时,才能获得表单控件,而此时地址信息不包含__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE等信息,所以querystring就不能获取的表单数据了。
例:下面我是一个测试两者区别的例子
页面代码:
<form id="form1" runat="server" method="get" action="Default.aspx?a=1&b=2">
<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>
<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地址: