2010-12-10 10 views
1

私は複数のラジオボタンが表示されたフォーム上で動的に生成されたフォームを持っていますどのように私はコントローラの値を収集することができます。たとえば、ジェンダー(男性と女性)、教育(BS、MS、BCS)のように動的に生成されるラジオボタンがあります。どのように私はそこにコンテナに値を持つことができます。ASP.NET MVC C#の動的なradiobuttons formcollectionを取得

答えて

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 
    } 
} 
関連する問題