如何查找名称以c#中的某个字符串开头的HTML元素的数量?
我不确定这个主题是否很好地描述了我的问题,但我正在使用jQuery动态创建一些HTML元素(文本框),我永远不知道我将创建多少(它在数据库中循环)。然后,我想将代码中的所有元素都隐藏起来,并执行一些操作(将它们插入另一个数据库) 我知道我可以用如何查找名称以c#中的某个字符串开头的HTML元素的数量?,c#,asp.net,C#,Asp.net,我不确定这个主题是否很好地描述了我的问题,但我正在使用jQuery动态创建一些HTML元素(文本框),我永远不知道我将创建多少(它在数据库中循环)。然后,我想将代码中的所有元素都隐藏起来,并执行一些操作(将它们插入另一个数据库) 我知道我可以用 string n = String.Format("{0}", Request.Form["hiddenField0"]).ToString(); 要获得第一个文本框,但如果我不知道我创建了多少个文本框,并且想要全部文本框,该怎么办?它们的名称以hid
string n = String.Format("{0}", Request.Form["hiddenField0"]).ToString();
要获得第一个文本框,但如果我不知道我创建了多少个文本框,并且想要全部文本框,该怎么办?它们的名称以hiddenField加上递增的数字开头
有没有一种方法可以循环遍历名称以某个字符串开头的所有元素
提前感谢var dictionary=Request.Form.Keys
var dictionary = Request.Form.Keys
.Cast<string>()
.Where(x => x.StartsWith("abc"))
.ToDictionary(x => x, x => Request.Form[x]);
.Cast()
.其中(x=>x.StartsWith(“abc”))
.ToDictionary(x=>x,x=>Request.Form[x]);
返回一个字典,其中包含以“abc”开头的所有表单元素的键/值
更新:糟糕的OP正在使用.Net 2.0。这是老派的答案:
Dictionary<string, string> keys = new Dictionary<string, string>();
foreach (string key in request.Form.Keys)
{
if (key.StartsWith("abc"))
keys[key] = request.Form[key];
}
字典键=新字典();
foreach(request.Form.Keys中的字符串键)
{
if(带“abc”的启动键)
key[key]=请求.表单[key];
}
+1击败我。:)我建议使用BaseGetAllKeys
方法(如Request.Form
是NameValueCollection
)。保存强制转换,因为它返回一个字符串[]
@RPM1984,我看到BaseGetAllKeys
声明为受保护
,no?Hi,我获取的'System.Collections.Specialized.NameObjectCollectionBase.KeyCollection'不包含'Cast'的定义,并且找不到接受'System.Collections.Specialized.NameObjectCollectionBase.KeyCollection'类型的第一个参数的扩展方法'Cast'(是否缺少using指令或程序集引用?)当你不想做的时候this@Morgan-你在运行什么版本的.NET?@Morgan,你有我最真诚的同情但是我更新了.NET2.0的答案。