2011-01-26 10 views
8

मेरे पास एक अद्वितीय आईडी के साथ कुछ चेकबॉक्स हैं। क्या किसी फॉर्म संग्रह में सभी चेकबॉक्स + यूनिकेंम ढूंढना संभव है?क्या मैं संग्रह के माध्यम से लूप कर सकता हूं। Reequest.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 रिटर्न कुंजी। आप 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] "। बीटीडब्ल्यू, फॉर्म फ़ील्ड में डुप्लिकेट आईडी खराब खराब है।

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

की आवश्यकता है जो कि धीमी गति से धीमी है। 'ऑलकेस' एक सरणी की प्रतिलिपि बनाता है। – 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(); 
       } 
      } 
     } 

आशा इस मदद करता है।

संबंधित मुद्दे