2011-01-26 48 views

回答

36

相反,你可以通過所有鍵循環,並檢查它們是否開始checkbox

例如:

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

NameValueCollection enumerator返回鍵作爲字符串。

+0

爲什麼這會降低投票率? – SLaks 2011-01-26 17:38:13

+0

不是由我...這是完美的!謝謝! – MrM 2011-01-26 17:44:12

+0

@user:不客氣。你應該接受這個答案。 – SLaks 2011-01-26 21:19:25

4

或者類似的東西

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

你應該能夠使用LINQ做到這一點(這應該工作,沒有測試過): 我也該複選框的ID是「複選框假設[ID]」。順便說一句,重複的ID在表單字段是壞壞壞。

var checkboxes = (from key in Request.Form.AllKeys where key = "checkbox" + UniqueIDNum) 
foreach(string key in checkboxes) 
{ 
    //do stuff 
} 
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(); 
       } 
      } 
     } 

希望這有助於。