フォームを送信するときに、for ループを使用してオプションの値を取得したいのですが、このコードを使用して、このモジュールを正常に機能させるにはどうすればよいですか?
for (int j = 0; j < i; j++)
{
String gender = Request.Form['"Option"+i'].ToString();
Response.Write(gender);
}
私はあなたがただ欲しいと思う:
String gender = Request.Form["Option" + i].ToString();
それがインデクサーの引数であるという事実は、ここでは関係ありません。それはちょうどこのようなものです:
int x = 5;
String y = "Option" + x; // Now y is "Option5"
ただし、ループを見ると、おそらく実際には次のj
代わりに使用したいでしょう。i
for (int j = 0; j < i; j++)
の値はi
、ループの過程で変化しません。
これを試して
String gender = Request.Form["Option" + j].ToString();
あなたはこれを行うことができます
for (int j = 0; j < i; j++)
{
string key = string.Format("Option{0}", i);
string gender = Request.Form[key].ToString();
Response.Write(gender);
}
ただし、for
ループの記述方法が原因で、同じフォーム フィールドのi
時間を出力するだけです。おそらく次のようなものが必要です。
for (int j = 0; j < totalFields; j++)
{
string key = string.Format("Option{0}", j);
string gender = Request.Form[key].ToString();
Response.Write(gender);
}