MVC @ Html.RadioButtonfor

时间:2017-02-16 02:11:06

标签: asp.net-mvc

我有2个单选按钮,并且在“提交”按钮后输入失败。根据之前的选择未选择性别值(typeof string)。

Male @Html.RadioButtonFor(model => model.gender)
Female @Html.RadioButtonFor(model => model.gender)

既没有选中单选按钮,而我的所有其他文本框都保留了除性别

以外的值

1 个答案:

答案 0 :(得分:3)

您没有为单选按钮设置value属性。如果他们没有value,则说明" on"已发布,并且在您的控制器方法中,您的模型将与gender = "on"绑定。当您返回视图时,您的单选按钮都不匹配"on",因此没有选择任何一个。

更改视图以添加单选按钮的值

<label>
    @Html.RadioButtonFor(m => m.gender, "Male", new { id = "" })
    <span>Male</span>
</label>
<label>
    @Html.RadioButtonFor(m => m.gender, "Female", new { id = "" })
    <span>Female</span>
</label>

注意<label>元素表示用户可以单击关联的文本以选择按钮,new { id = "" }会删除id属性,否则会创建无效的html(重复{ {1}}属性)。

此外,您应该考虑使用id作为属性,而不是enum

string

所以属性是

public enum Gender
{
    Male,
    Female
}

并在视图中(假设您已包含enum的using语句)

public Gender Gender { get; set; }

link to specification(用于单选按钮和复选框)

  

默认/上

     

获取时,如果元素具有value属性,则必须返回该属性的值;否则,必须返回字符串&#34; on&#34; 。在设置时,必须将元素的value属性设置为新值。