在Asp.net开发中,所有html控件的值都是可以在服务器端用后台代码的Request[name]来获取其值的。但如果有多个相同name的Html控件提交到后台,怎么分别取各个控件的值呢?而多数情况下这些控件的个数是不定的。

例如在填写简历表单中,“工作经历”这项内容是可以让用户动态增加的,可能有的用户有3条工作经历,有的用户有5条工作经历。当然,我们讨论这个问题的前提是由用户动态增加后一起提交到服务器,而不是采用增加一条提交一条的方式。例如:

当用户点“添加”时就通过Javascript动态生成元素插入到document里,而这些添加的元素都保持name统一。我们可以把问题简化一下,例如以下代码submit到服务器后在后台如何获取name为“txt”的textbox的数量以及如何获取各自的值:

<input type=”text” name=”txt” >
         <input type=”text” name=”txt” >
         <input type=”text” name=”txt” >
           ……

一开始想到的是用Request[“txt”]、Request.Form[“txt”]以及Request.Params[“txt”],这些都将返回所有name为“txt”的元素的值,并用逗号分隔,例如返回 “aaa,bbb,ccc” ,这表示这三个textbox的值分别是aaa,bbb和ccc。但是如果用户在某个控件里输入的值就包含逗号本身,那就麻烦了。

最好的解决方法就是用我以前没有太注意过的方法Request.Params.GetValues( string name)。它返回的是一个数组,所以就不用担心逗号的问题了。例如这个例子中就可以用这个方法:

string[] txtArr = Request.Params.GetValues("txt");

这下就可以通过txtArr.length来获知有多少个name为“txt”的控件了,并能很方便的遍历各个控件的值。

http://www.cnblogs.com/qguohog/archive/2009/10/29/1592450.html

Request 分别获取具有相同 name 属性表单元素值

 
<form method="post" action="">
<input name="txtName" id="txtFirstName" type="text" />
<input name="txtName" id="txtMiddleName" type="text" />
<input name="txtName" id="txtLastName" type="text" />
</form>

服务器端读取的常规做法是:

string name = Request.Params["txtName"];

得到的将是一串以逗号分割的字符串,当然你可以手动分割:
string[] nameParts = name.Split(’,’);
但是当每个 input 输入可能包含逗号的时候,通过逗号分割就会是错的。
如何解决?
string[] nameParts = Request.Params.GetValues("txtName");
string firstName = nameParts[0];
string middleName = nameParts[1];
string lastName = nameParts[2];

以上用法对于 GET/POST 方式提交都是适用的。

值得注意的是,用来存储 QueryString/Form/ServerVariables 的对象是 System.Collections.Specialized.NameValueCollection, 这是 Key/Value 型对象,它的特殊性在于,一个Key下可存储多个 Value。

后台如何通过Request取得多个含有相同name的控件的值?的更多相关文章

  1. 后台通过Request取得多个含有相同name的控件的值

    string[] arrWeight = context.Request.Params.GetValues("Quantity");

  2. .NET后台如何获取前台HMTL控件的值

    很多时候我们需要HTML控件,感觉比服务器控件更加简介,清爽,那么如何获取HMTL控件的值呢,请看下面例子: 前台页面代码: <input id="Text1" type=& ...

  3. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  4. asp.net后台获取html控件的值

    1.asp.net后台获取前台type=text控件的值 前台:<input name="txtName" class="username" type=& ...

  5. 动态生成tr,并将其下控件的值拼接后传到后台并保存

    有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...

  6. 前台改变asp button控件的值,后台取值没有改变的问题

    前台: <asp:Button ID="btnEdit" Style="margin-left: 600px;" runat="server&q ...

  7. 在后台获取Textarea控件的值

    使用Request.Form方法 1.在前台设置name 属性 <textarea name="Content">hdjfhjdfhdj</textarea> ...

  8. 后台获取html控件的值

    string name = Request.Form["Name1"].ToString(); “xxx” 里的是name值 Request["xx"]取到相同 ...

  9. mui侧滑菜单"点击含有mui-action-menu类的控件"无法实现侧滑

    .mui-action-menu 标题栏 菜单按钮 指定href="#id"显示与隐藏侧滑菜单 html: <div class="mui-off-canvas-w ...

随机推荐

  1. (转)在ASP.NET MVC3 中利用Jsonp跨域访问

    原文地址:http://www.cnblogs.com/skm-blog/p/3431999.html 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用 ...

  2. jquery cookie用法

    jquery cookie用法(获取cookie值,删除cookie) cookie在jquery中有指定的cookie操作类,下面我先来介绍我们在使用cookie操作类时的一些问题,然后介绍正确的使 ...

  3. [LeetCode 题解]:Best Time to Buy and Sell Stock

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Say you ha ...

  4. 获取hyper-v和vmware虚机状态

    在vmware的PowerCLI和微软的scvmm的PowerShell中可以通过Get-VM命令来获取虚拟机的信息.下面我们用代码的方式去实现,代码相关类方法就是对命令的封装. vmware api ...

  5. python3.5在内存中获取远程图片尺寸

    自已看看,用于获取选程图片的尺寸 >>> from io import BytesIO>>> import requests as rs>>> f ...

  6. 【转】C#中使用aria2c进行下载并显示进度条

    [转自] C#中使用aria2c进行下载并显示进度条 - 云平台知识库 - 博客园https://www.cnblogs.com/littlehb/p/5782714.html 正则表达式的生成网站: ...

  7. IO模型《四》多路复用IO

    多路复用IO(IO multiplexing) IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了.有些地方也称这种IO方式为事件驱动IO (ev ...

  8. jQuery判断表单input

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. bzoj1833数字计数

    题目链接 找$[1$ ~ $a-1]$和$[1$ ~ $b]$中各数码出现的次数之后相减就是答案 上代码: /********************************************* ...

  10. python3的enumerate函数

    enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.