Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
html 中是允許多個(gè)具有相同name屬性的元素的,例如
<div> <input name="txtName" id="txtFirstName" type="text" /> <input name="txtName" id="txtMiddleName" type="text" /> <input name="txtName" id="txtLastName" type="text" /> div>服務(wù)器端讀取的常規(guī)做法是:
string?name = Request.Params["txtName"];
得到的將是一串以逗號(hào)分割的字符串,當(dāng)然你可以手動(dòng)分割: string[] nameParts = name.Split(’,’); 但是當(dāng)每個(gè) input 輸入可能包含逗號(hào)的時(shí)候,通過(guò)逗號(hào)分割就會(huì)是錯(cuò)的。 如何解決?在 Classic ASP 通過(guò) 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];以上用法對(duì)于 GET/POST 方式提交都是適用的。
值得注意的是,用來(lái)存儲(chǔ) QueryString/Form/ServerVariables 的對(duì)象是?System.Collections.Specialized.NameValueCollection, 這是 Key/Value 型對(duì)象,它的特殊性在于,一個(gè)Key下可存儲(chǔ)多個(gè) Value。
越來(lái)越懷念 Classic ASP,ASP+ 將簡(jiǎn)單的HTTP裹得太嚴(yán)實(shí),很多簡(jiǎn)單實(shí)用的用法逐漸被遺忘,漫天飛的 runat="server" 讓諸多原始但精巧的 form 處理方式?jīng)]有被傳承下來(lái)....
順便題下,雖然很少使用ASP.NET AJAX,特別是ControlToolkit包,當(dāng)然也是由于參與UI需求的AJAX開(kāi)發(fā)較少,但是對(duì)ControlToolkit的性能,特別是響應(yīng)效率一直抱懷疑態(tài)度....
總結(jié)
以上是生活随笔為你收集整理的Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用url传值,如何传多个值
- 下一篇: request.getParameter