ASP.Net MVC:我可以使用FormCollection来确定选择了哪个单选按钮吗?

时间:2009-12-16 01:25:33

标签: html asp.net-mvc

我正在使用FormCollection在ASP.Net MVC视图上获取客户端输入。我正在使用一个复选框,我只是检查FormCollection的AllKeys列表是否包含我正在检查的复选框的名称。我现在需要切换到单选按钮,但由于输入需要具有相同的名称(这对我来说有点傻),我无法确定选择了哪个单选按钮。

或者我可以吗?

3 个答案:

答案 0 :(得分:5)

如果您有三个具有相同名称的单选按钮,那么当您在表单集合中返回值时,该键的值将是所选单选按钮的值。这就是他们的工作方式。它们使用与逻辑分组相同的名称,因此选择一个,取消选择前一个。因此,如果您按名称识别组,则可以假设该值是所选单选按钮的值!

安德鲁

答案 1 :(得分:3)

假设您有3个这样的radiobuttons:

 <% = Html.RadioButton("radio", "1")%>
 <% = Html.RadioButton("radio", "2")%>
 <% = Html.RadioButton("radio", "3")%>

当您发布POST时,您将获得1个值,选中一个值,如下所示:

var radio = Convert.ToInt16(Request.Form["radio"]);

formCollection只包含一个具有相应值的键。

我鼓励您通过直接参数绑定来使用模型绑定器:

public ActionResult Action(int radio)

或使用ViewModel。

答案 2 :(得分:0)

我使用jQuery来设置隐藏字段。

所以我有这样的事情;

var RadioButtonValue = $('input:radio[class=RadButtonClassGroupName]:checked').val();

然后我可以将隐藏字段值设置为RadioButtonValue。

我知道这个解决方案有点糟透了,但我在jQuery ajax帖子中使用了这个,但如果其他所有方法都失败也可以应用于你的问题。