如何从无限数量的物品收集数据RadioButton?

问题描述:

@{int i=0;} 
@foreach (var e in Model.BlockList) 
{ 
    @foreach (var e2 in e.RadioButtons) 
    { 
    <label>@Html.RadioButton("r"+i, e2.Id, false) @e2.ViewText</label><br /> 
    } 
    i++; 
} 

问:如何在控制器中通过所有的答案?如何从无限数量的物品收集数据RadioButton?

这时我的控制器类是这样的:

[HttpPost] 
public ActionResult Index(DocAlpha a) 
{ 
    List<int> results = new List<int>(); 
    int i = 0; 

    while (Request.Params["r" + i.ToString()] != null) 
    { 
     int val = 0; 

     if(int.TryParse(Request.Params.Get("r" + i.ToString()), out val)) 
     { 
     results.Add(val); 
     } 
     i++; 
    } 

    return Index(); 
} 

可能是更好的办法?

+0

这个RadioButtons属性是一个枚举吗?如果是这样,它是否可以成为标记的枚举? – 2010-11-14 21:35:44

可以使单选按钮名称的数组像这样(注意名称):

Html : 
<input type="text" name="r[0]" value="" /> 
<input type="text" name="r[1]" value="" /> 
<input type="text" name="r[2]" value="" /> 
<!--and so on --> 

然后让你的行动接受一个数组:

public ActionResult TheAction (string[] r) { 

} 

默认的模型粘合剂将自动填充您的行动中的答案数组与表单中输入的值一起排列。