ASP.NET中,我们在后台获取页面表单元素中的值的方法通常有:
Request.Form (Post) 、Request.QueryString(GET)、Request.Params等几种。
当然,还可以直接使用Request本身的索引。
-----
有些时候,我们页面上的表单元素的值(比如下拉列表)是通过ajax(js)来动态改变的,那在后台再使用.Value这些就不能再获取到了。
这个时候怎么办呢?
一、可以使用一个隐藏控件来存放选中的值。然后在后台获取该隐藏控件的值。
二、我们应该知道,表单元素的值的传递是通过name属性来标识的(不管是Post还是Get)。
无论值怎么变,该元素的name还是不变的,那在ASP.NET中,就表示UniqueID是不变的,那我们就可以通过
Request[***.UniqueID]来获取元素值。
------
那如果页面上有多个具有相同name的元素时,我们怎么获取值呢?
通过Request及相关几个(对象)属性也是可以获取到的,默认情况下,获取到的值是以逗号分隔的。
但是:如果我们在表单元素中输入的值本身就包含逗号时,怎么办呢?
》》也许我们很少注意到,Request的几个(对象)属性都包含了一对方法(Get和GetValues)。它们其实就可以获取传递的元素值。
针对有多个相同name元素时:
Get获取到的值以逗号分隔,而不管元素值本身是否包含逗号。
GetValues会将获取到的元素值以数组方式存放,而不以逗号连接。
我们可以想像,Get是对GetValues的又一层包装(数组join方法连接)
因此,如果要获取多个相同name元素的值,可以使用GetValues..