Asp.net中Request[],Request.Form.Get()的区别??

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:42:23
Request[],Request.Form.Get()的区别??

asp.net2.0中有几种方法获取本页提交的值?
Request[id],Request.QueryString[id],REquest.Form[id]这是我以前知道的。

今天看书看到一个Requst.Form.Get(id)。
这些都可以获取本页控件(如 TextBox)的值吗?

有什么区别?特别是Requst.Form.Get(id)与那三个的区别????
事情是这样的:
今天我看书学习做一个XML的通讯录,
有一部分是建立XmlText对象,需要用本页上的控件(通讯录信息)的Text,书上是
XmlText telephoneText = xdoc.CreateTextNode(Request.Form.Get("TextBoxTelephone"));---------1
我以为跟这样是相同的:
XmlText telephoneText = xdoc.CreateTextNode(Request["TextBoxTelephone"]);------------------2
但结果为空,就是这些数据没有填入XML.看来没有获取到。
没办法我就直接
XmlText telephoneText = xdoc.CreateTextNode(TextBoxTelephone.Text);------------------------3
◆◆我想问一下为什么第2办法不行?与第1种有何区别?
◆◆另外我想问一下:本页内的提交,应该是用Request等什么的还是直接用“ 控件ID.Text” ?

都可以获取本页提交的数据。但QueryString仅用于Get方式。另外三种可用于Post方式。所以页面控件的值(若页面在Form中才行)采用Post方式,可以用三种方式获取。另外Request[]的方式可以获取Cookie、Form、QueryString、ServerVariables类型的值,即所有通过Request提交的都可以。
Request.Form返回的是NameValueCollection类型对象,该类型对象有Get方法。所以Request.Form[]和Request.Form.Get()是相同的。
所以,Request[]是无论何时都可以的方法,但必须将控件写在前台的Form标记中。至于你的为什么不行,我不知道,大概是别的原因。