Request 分别获取具有相同 name 属性表单元素值
2014-03-22 17:29
211 查看
html 中是允许多个具有相同name属性的元素的,例如
<div>
<input name="txtName" id="txtFirstName" type="text" />
<input name="txtName" id="txtMiddleName" type="text" />
<input name="txtName" id="txtLastName" type="text" />
</div>
服务器端读取的常规做法是:
string name = Request.Params["txtName"];
得到的将是一串以逗号分割的字符串,当然你可以手动分割:
string[] nameParts = name.Split(',');
但是当每个 input 输入可能包含逗号的时候,通过逗号分割就会是错的。
如何解决?
在 Classic ASP 通过 Request 可以这样分别获取
<%
firstName = Request.Form("txtName")(1)
middleName = Request.Form("txtName")(2)
lastName = Request.Form("txtName")(3)
%>
在 ASP.NET HttpRequest 同样支持 Classic ASP Request 的用法,
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。
越来越怀念 Classic ASP,ASP+ 将简单的HTTP裹得太严实,很多简单实用的用法逐渐被遗忘,漫天飞的 runat="server" 让诸多原始但精巧的 form 处理方式没有被传承下来....
顺便题下,虽然很少使用ASP.NET AJAX,特别是ControlToolkit包,当然也是由于参与UI需求的AJAX开发较少,但是对ControlToolkit的性能,特别是响应效率一直抱怀疑态度....
<div>
<input name="txtName" id="txtFirstName" type="text" />
<input name="txtName" id="txtMiddleName" type="text" />
<input name="txtName" id="txtLastName" type="text" />
</div>
服务器端读取的常规做法是:
string name = Request.Params["txtName"];
得到的将是一串以逗号分割的字符串,当然你可以手动分割:
string[] nameParts = name.Split(',');
但是当每个 input 输入可能包含逗号的时候,通过逗号分割就会是错的。
如何解决?
在 Classic ASP 通过 Request 可以这样分别获取
<%
firstName = Request.Form("txtName")(1)
middleName = Request.Form("txtName")(2)
lastName = Request.Form("txtName")(3)
%>
在 ASP.NET HttpRequest 同样支持 Classic ASP Request 的用法,
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。
越来越怀念 Classic ASP,ASP+ 将简单的HTTP裹得太严实,很多简单实用的用法逐渐被遗忘,漫天飞的 runat="server" 让诸多原始但精巧的 form 处理方式没有被传承下来....
顺便题下,虽然很少使用ASP.NET AJAX,特别是ControlToolkit包,当然也是由于参与UI需求的AJAX开发较少,但是对ControlToolkit的性能,特别是响应效率一直抱怀疑态度....
相关文章推荐
- Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
- Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP
- Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
- Request 分别获取具有相同 name 属性表单元素值
- Request 分别获取具有相同 name 属性表单元素值
- Request获取具有相同 name 属性表单元素值
- jQuery name属性与checked属性结合获取表单元素值
- html的name属性可以用来获取dom元素,表单提交数组name的写法
- php的form中元素name属性相同时的取值问题
- document.getElementById("idName")用js方法获取元素,则设定风格属性的方法为
- 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值
- Jquery validate验证表单时多个name相同的元素只验证第一个的问题
- 有name为action的表单元素时取form的属性action杯具了
- jQuery 基础 : 获取对象 根据属性、内容匹配, 还有表单元素匹配
- IE9 使用document.getElementsByName("abc") 不能获取到名称相同SPAN元素
- Django表单提交后,如何获取相同name的不同value值
- 一次性获取页面name属性相同的所有组件值
- jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
- 给自己提个醒:关于document.getElementsByName无法获取非表单元素
- form 的 encoding设置不当导致在jsp中使用request.getParametre(paraName)无法获取表单提交的值