0

私のフォームは動的であり、ユーザーが望むものを送信し、データを処理するためだけの処理ページがあります。

<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
}

上記のサンプルはPHPの擬似コードハイブリッドのものであると理解していますが、ASP.netで何かを探していました。

補足として:数字があれば、上記の名前のデザインを何にでも変更できます...それがユニークな理由です。それはそれをはるかに簡単にするかもしれません

編集:アイテムの名前をidData[]およびimgData[]として指定することはできますが、サーバーに送信するときに、リンクがないため、どのアイテムが何を参照しているかわかりません。番号はです。これは、問題の解決に部分的に役立つハードルです。

4

1 に答える 1

2

.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ではないことに注意してください(その場合はかなり確実です)。

于 2012-09-06T16:39:02.603 に答える