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 @   mcjeremy  阅读(3093)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
------------------------------------ 心静似高山流水不动,心清若巫峰雾气不沾 ------------------------------------
点击右上角即可分享
微信分享提示