2010-11-14 40 views
0
@{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

回答

3

可以使單選按鈕名稱的數組像這樣(注意名稱):

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) { 

} 

默認的模型粘合劑將自動填充您的行動中的答案數組與表單中輸入的值一起排列。

相關問題