Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
2015-11-13 00:22
645 查看
html 中是允许多个具有相同name属性的元素的,例如
服务器端读取的常规做法是:
string name = Request.Params["txtName"];
在 Classic ASP 通过 Request 可以这样分别获取
在 ASP.NET HttpRequest 同样支持 Classic ASP Request 的用法,
以上用法对于 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的性能,特别是响应效率一直抱怀疑态度....
相关文章推荐
- ASP.NET 5 开发者的五个阶段
- Struts2整合jasperreport缓存处理方法
- asp.net下载文件几种方式
- Asp.net获取程序路径
- IIS对ASP的解析问题
- ASP.NET 页生命周期概述
- ASP.NET 简单鼠标右键效果contextmenutrip
- .Net动态代理Castle系列
- ASP.NET两个常见的异常 如未能创建 Mutex
- asp.net 后台按钮事件弹出新页而不被阻止
- asp.net 后台按钮事件弹出新页而不被阻止
- Asp.Net Form验证
- asp.net中操作Word问题记录
- asp.net mvc 发送邮箱验证码
- asp.net请求管道和页面生命周期
- asp.net日期格式出现"/"的问题
- iOS设置按钮的图片为Aspetfit
- asp.net发布webservice出现‘Could not write to output file ‘解决办法
- asp.net微信开发(开发者接入)
- ASP.NET MVC 网站优化总结 使用 Gzip 压缩