ASP.NET Request 与 Name(表单元素值)

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..

posted @ 2011-02-16 12:40  mcjeremy  阅读(3080)  评论(0编辑  收藏  举报
------------------------------------ 心静似高山流水不动,心清若巫峰雾气不沾 ------------------------------------