.net – 在Request.Form中搜索控件/解析NameValueCollection
发布时间:2020-12-16 09:30:39 所属栏目:asp.Net 来源:网络整理
导读:我正在使用Request.Form搜索控件名称. 当然我知道你可以使用AllKeys迭代所有值,你也可以做Form [“controlName”]. 但是我的一些控件名称是动态的,能够执行以下操作会很有用: 1)获取名称以特定前缀开头的集合中的控件子集 2)搜索与模式匹配的控件名称,就像
我正在使用Request.Form搜索控件名称.
当然我知道你可以使用AllKeys迭代所有值,你也可以做Form [“controlName”]. 但是我的一些控件名称是动态的,能够执行以下操作会很有用: 1)获取名称以特定前缀开头的集合中的控件子集 但我无法看到做这样的事情. N.B我知道如何使用FindControl for ASP.NET控件,但这些是标准的HTML. 解决方法
如果您使用的是C#3,则可以使用LINQ和扩展方法以非常好的方式实现此目的.首先,您需要在
this thread中创建
Bryan Watts设计的扩展方法:
public static IEnumerable<KeyValuePair<string,string>> ToPairs(this NameValueCollection collection) { if (collection == null) { throw new ArgumentNullException("collection"); } return collection.Cast<string>().Select(key => new KeyValuePair<string,string>(key,collection[key])); } 现在,假设你有一个这样的表格: <form id="form1" runat="server"> <div> <input type="text" name="XXX_Name" value="Harold Pinter" /> <input type="text" name="XXX_Email" value="harold@example.com" /> <input type="text" name="XXX_Phone" value="1234 5454 5454" /> <input type="text" name="YYY_Name" value="AN. Other" /> <input type="text" name="YYY_Email" value="another@example.com" /> <input type="text" name="YYY_Phone" value="8383 3434 3434" /> <input type="submit" value="submit button" /> </div> </form> 您可以在代码隐藏中执行此操作: protected void Page_Load(object sender,EventArgs e) { var data = Request.Form.ToPairs().Where(k => k.Key.StartsWith("XXX_")); foreach (var item in data) { Response.Write(String.Format("{0} = '{1}',",item.Key,item.Value)); } } 哪个会输出: XXX_Name = 'Harold Pinter' XXX_Email = 'harold@example.com' XXX_Phone = '1234 5454 5454' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在控制器中获取路由URL?
- asp.net-mvc – 使用MVC和WebAPI避免使用Resharper web.con
- asp.net – 升级到WebAPI 2.1时出错XmlDocumentationProvid
- asp.net-web-api – Ajax Post:405方法不允许
- asp.net – 使用MVC4的Autofac:控制器没有默认构造函数
- ASP.NET+d3.js实现Sqlserver数据库的可视化展示
- 从零开始学 ASP.NET Core 与 EntityFramework Core 课程介绍
- asp.net – 考虑Scalablity和友好URL的GUID替代方案
- 如何部署/发布ASP.NET网站?
- asp.net – 带有MVC 4.0的DotNetOpenAuth
推荐文章
站长推荐
- ASP.NET Web API方法返回IQueryable是否有意义?
- asp.net-mvc – 用于ASP.NET MVC 3的NuGet软件包
- ASP.Net Identity 2.0:用户是System.Web.Securi
- asp.net-core – 更改IdentityServer 4中的默认端
- asp.net-mvc – HttpContext.Items与ASP.NET MVC
- asp.net – 如何从System.Web.HttpPostedFileBas
- asp.net-mvc – Razor中的条件链接
- asp.net-mvc – LabelFor和TextBoxFor不生成相同
- asp.net-core – Asp.net核心身份使用AspNetUser
- asp-classic – 如何从此ADODB.Recordset获取插入
热点阅读