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