试图找出如何在asp.net处理页面上迭代发布的数据

试图找出如何在asp.net处理页面上迭代发布的数据,asp.net,forms,Asp.net,Forms,我的表单是动态的,提交用户想要的内容,我有一个处理页面来处理数据: <form id="imageForm" method="post" action="WebFormDesignImageProcessor.aspx" target="imageCollector"> <input id="image61472" name="image[61472]" value="" src="file:\\C:\Users\william.francis\Downloads\errm

我的表单是动态的,提交用户想要的内容,我有一个处理页面来处理数据:

<form id="imageForm" method="post" action="WebFormDesignImageProcessor.aspx" target="imageCollector">
  <input id="image61472" name="image[61472]" value="" src="file:\\C:\Users\william.francis\Downloads\errmergerd.jpg" type="file">
  <input id="image61474" name="image[61474]" value="" src="file:\\C:\Users\william.francis\Downloads\william_linkedin_photo.jpg" type="file">
  <input id="data[image61472]" name="image61472data" value="61472" type="hidden">
  <input id="data[image61474]" name="image61474data" value="61474" type="hidden">
</form>

数据是动态的,表单可以根据用户的输入进行增减。我想做的是将数据集配对在一起,并以某种方式对其进行迭代

for( i = 0; i < $_POST['data[]'].length; i++){
   byte[] img = $_POST['image['.i.']'];
   string pk = $_POST['image'.i.'data];
   //then query
}
for(i=0;i<$\u POST['data[]”。长度;i++){
字节[]img=$_POST['image['.i.]'];
字符串pk=$\u POST['image.i.'data];
//然后询问
}
我知道上面的示例是PHP伪代码混合的东西,但我正在ASP.net中寻找一些东西

作为旁注:我可以将上面的名称设计更改为任何名称,只要有数字。。。因为这就是它的独特之处。这可能会让事情变得容易得多


编辑:我可以将项目的名称命名为idData[]和imgData[],但在将其发送到服务器时,我不知道哪个项目引用了什么。。。。因为没有链接。。。。这就是这些数字的意义所在。这是一个部分有助于解决问题的障碍

我不知道你在.NET中是否也能做到这一点;但是,您可以使用linq:

var rq = HttpContext.Current.Request;
var keys = rq.Form.AllKeys.Where(i => i.StartsWith("data") == true);

foreach (var key in keys)
{
    //check key, and process accordingly
}

差不多吧。请注意,名称是表单集合中可用的标识符,而不是ID(很确定是这样)。

不一定,但据我所知,正则表达式不能以LINQ可以的方式处理NameValueCollection。您可以在LINQ lambda语句中放入一个正则表达式,这样就可以使用regex.IsMatch而不是i.StartsWith,并充分利用这两个方面。