我正在使用FormCollection在ASP.Net MVC视图上获取客户端输入。我正在使用一个复选框,我只是检查FormCollection的AllKeys列表是否包含我正在检查的复选框的名称。我现在需要切换到单选按钮,但由于输入需要具有相同的名称(这对我来说有点傻),我无法确定选择了哪个单选按钮。
或者我可以吗?
答案 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帖子中使用了这个,但如果其他所有方法都失败也可以应用于你的问题。