ASP.NET MVC C#动态radiobuttons获得formcollection

时间:2010-12-10 14:26:28

标签: c# asp.net-mvc

我有一个表单,其中可以在视图中动态生成多个单选按钮,在提交的表单上我如何收集控制器中的值。例如,有动态生成的单选按钮,如性别(男性和女性),教育(BS,MS,BCS)。我怎样才能在容器中有价值。

2 个答案:

答案 0 :(得分: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 :(得分:1)

唯一的方法是使用表单集合,如果它们是动态生成的单选按钮。

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