2010-12-10 90 views
1

我有一個表單,其中可以有多個單選按鈕在視圖中動態生成,在提交的表單上,我如何收集控制器中的值。例如,有性別(男性和女性),教育(BS,MS,BCS)等動態生成的單選按鈕。我怎麼能在那裏有價值的容器。ASP.NET MVC獲取表單的動態單選按鈕

回答

3

如果您知道單選按鈕的名稱,則可以使用操作參數。如果名稱是任意的,則可以從傳遞給POST操作的FormCollection參數中獲取值(這是一個NameValueCollection,因此您可以遍歷該鍵並獲取相應的值)。

個人而言,我會建議你使用確定性的名字:

Gender: 
<input type="radio" value="M" name="radios[0]" /> 
<input type="radio" value="F" name="radios[0]" /> 

Education: 
<input type="radio" value="BS" name="radios[1]" /> 
<input type="radio" value="MS" name="radios[1]" /> 
<input type="radio" value="BCS" name="radios[1]" /> 

而在你的控制器動作,你可以使用一個集合:

[HttpPost] 
public ActionResult Update(string[] radios) 
{ 
    // The radios collection will contain the selected values like: 
    // radios[0] = "F" 
    // radios[1] = "MS" 
    ... 
} 
1

的唯一方法是使用形式的集合,如果他們動態生成單選按鈕。

public ActionResult controllername(FormCollection form) 
{ 
    foreach(string radioName in dynamicRadioList) 
    { 
      var value = form[radioName]; 
      //blah blah 
    } 
}