2011-01-26 8 views
8

一意のIDを持つチェックボックスがいくつかあります。フォームコレクション内のすべてのチェックボックス+ユニークナンバーを見つけることは可能ですか?以下のようなCollection.Request.Formをループすることはできますか?

何か -

代わり

foreach (var item in Collection.Request.Form["checkbox" + with UniqueIDNum]) 
{ 
    //code 
} 

答えて

36

いいえ、あなたは彼らがcheckboxで始まるかどうかの鍵のすべてをループし、確認することができます。例えば

foreach(string key in Request.Form) { 
    if (!key.StartsWith("checkbox")) continue; 
    ... 
} 

文字列としてNameValueCollection enumeratorリターンキー。 私はチェックボックスのIDは、「チェックボックスであることも想定している:あなたは(これは動作するはずです、テストしていません)のLINQでこれを行うことができるはず

+0

なぜこれがダウンリストされましたか? – SLaks

+0

私以外では...これは完璧でした!ありがとう! – MrM

+0

@user:ようこそ。あなたはこの答えを受け入れるべきです。 – SLaks

4

か、その

var checkBoxes = Request.Form.Keys.Where(rs=>rs.StartsWith("dummy")); 
foreach(string key in checkBoxes){ 
// Your code 
} 
+2

あなたは 'キャスト()' – SLaks

1

のようなもの[ID] "ところで、フォームフィールドの重複IDは悪い悪いです。

var checkboxes = (from key in Request.Form.AllKeys where key = "checkbox" + UniqueIDNum) 
foreach(string key in checkboxes) 
{ 
    //do stuff 
} 
+0

が不必要に遅くなる必要があります。 'AllKeys'は配列をコピーします。 – SLaks

1
 [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Index(FormCollection fc) 
     { 
      string a = fc["hdn_1"].ToString(); // if you know for sure that it will have a value. 
      string lbl_1 = null; 

      foreach (var key in fc.AllKeys) 
      { 
       if (key.Contains("txt_1")) 
       { 
        lbl_1 = fc["txt_1"].ToString(); 
       } 
      } 
     } 

この情報がお役に立てば幸いです。

関連する問題