2009-07-02 50 views
1

我在ASP.NET 2.0页面的表单文章中接收到长格式的选中的html复选框值(Request.Form [“mylist”] return Value1,Value2,Value3 ....)。c中的复选框数组循环#

现在我只想循环这些,但我不知道什么是循环这个字符串数组的最佳做法。我试图做这样的事情:

foreach (string Item in Request.Form["mylist"]){ 
    Response.Write(Request.Form["mylist"][Item] + "<hr>"); 
} 

但它不起作用。

回答

6

您必须拆分逗号分隔的字符串。尝试

string myList = Request.Form["myList"]; 
if(string.isNullOrEmpty(myList)) 
{ 
    Response.Write("Nothing selected."); 
    return; 
} 
foreach (string Item in myList.split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries)) 
{ 
    Response.Write(item + "<hr>"); 
} 
0

我建议不要在表单值中使用分割以防止用逗号分割值。

string myList = Request.Form.GetValues("myList"); 
foreach (var Item in myList) 
{ 
    Response.Write(item + "<hr>"); 
} 
0

要完成调试黛绰维纳的回答,其中有一个重要的和正确的点...

对于以下示例HTML

<p>Select numbers for a sum:</p> 
<input type="checkbox" id="c1" name="myList" value="1"/><label for="c1">1</label> 
<input type="checkbox" id="c2" name="myList" value="2"/><label for="c2">2</label> 
<input type="checkbox" id="c3" name="myList" value="3"/><label for="c3">3</label> 

您可以通过

var sum = 0; 
var selectedNumbers = Request.Form.GetValues("myList"); 

if (selectedNumbers != null) 
{ 
    foreach (var selectedNumber in selectedNumbers) 
    { 
     // my example uses integers 
     var number = int.Parse(selectedNumber); 
     sum += number; 
    } 
} 

Response.Write("<p>Sum: " + sum + "</p>"); 
阅读所选复选框