MVC5 radiobutton值错误

时间:2015-11-27 11:52:48

标签: c# asp.net-mvc radio-button

我对MVC开始从网络表单迁移有点新鲜,所以请耐心等待。

我有一个性别定义为的单选按钮组;

<div class="form-group">
    @Html.LabelFor(m => m.Gender, new { @class = "col-xs-3 control-label" })
    <div class="col-xs-5">
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, new { @class = "form-control", value= Gender.Male})<span>Male</span>
                @*<input type="radio" name="gender" value="male"/> Male*@
            </label>
        </div>
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, new { @class = "form-control", value = Gender.Female }) <span>Female</span >
                @*<input type="radio" name="gender" value="female"/> Female*@
            </label>
        </div>
    </div>
</div>

其中Gender是另一个项目中定义的枚举,但viewmodel类使用该枚举。

 [Required]
 [Display(Name = "Gender")]
 public DomainClasses.Enums.Gender Gender { get; set; }

无论我似乎试图做到这一点,我都会得到以下验证错误。

  

值'{class = form-control,value = Male}'对于Gender不起作用。

更新

提交之前的原始外观是

enter image description here

但是在改用建议的方法后,为什么现在看看呢?

enter image description here

1 个答案:

答案 0 :(得分:5)

查看图片

enter image description here

此图显示,超载没有接受第二个参数作为 Html属性,所以你需要这样写:< / p>

<div class="form-group">
    @Html.LabelFor(m => m.Gender, new { @class = "col-xs-3 control-label" })
    <div class="col-xs-5">
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, Gender.Male , new { @class = "form-control" })<span>Male</span>
                @*<input type="radio" name="gender" value="male"/> Male*@
            </label>
        </div>
        <div class="radio">
            <label>
                @Html.RadioButtonFor(m => m.Gender, Gender.Female,  new { @class = "form-control" }) <span>Female</span >
                @*<input type="radio" name="gender" value="female"/> Female*@
            </label>
        </div>
    </div>
</div>

在此重载中,您将第二个参数作为 RadioButton 传递