Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
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的性能,特別是響應效率一直抱懷疑態度....
總結
以上是生活随笔為你收集整理的Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用url传值,如何传多个值
- 下一篇: request.getParameter