如何将布尔值设置为[必需]以与RadioButtonFor一起使用?

时间:2017-12-24 15:41:36

标签: asp.net-mvc

我正在尝试创建属性并添加DataAnnotation [Required]以与RadioButtonFor一起使用。加载页面时RadioButtonForunchecked,我需要这个,因为用户需要从下一步中选择两个选项之一(是/否)。问题是我不能使这个属性成为必需。

我怎么能这样做?

模型

[Required(ErrorMessage="Please, choose one option")]
public Boolean isGroupMember { get; set; }

HTML

<div class="form-group">
                        <label for="@Html.IdFor(model => model.isGroupMember )" class="cols-sm-2 control-label">Choose one option ? <img src="~/Imagens/required.png" height="6" width="6" title="requerido"></label>
                        <table class="table">
                            <tr>
                                <td><strong>Yes</strong>@Html.RadioButtonFor(model => model.isGroupMember , 1, new { Class = "form-control" })</td>
                                <td><strong>No</strong>@Html.RadioButtonFor(model => model.isGroupMember , 0, new { Class = "form-control" })</td>
                            </tr>
                        </table> 
                        @Html.ValidationMessageFor(model => model.isGroupMember )                     
                    </div><!--/member group-->

2 个答案:

答案 0 :(得分:3)

布尔字段的2个可能值为spring.servlet.multipart.max-file-sizespring.servlet.multipart.max-request-size。布尔字段的默认值为true。因此,即使用户没有在表单中选择任何内容,当模型验证框架检查此属性的值时,值(false默认值)是有效的布尔值,因此将通过模型验证。

要使所需的验证工作,您需要将其设为nullable布尔类型

false

我还建议切换到PascalCasing获取属性名称(false而不是[Required(ErrorMessage = "Please, choose one option")] public Boolean? isGroupMember2 { get; set; }

IsGroupMember2

您也可能想要将单选按钮的值更改为isGroupMember2[Required(ErrorMessage = "Please, choose one option")] public bool? IsGroupMember2 { get; set; } ,而不是TrueFalse

1

答案 1 :(得分:1)

尝试使用以下代码替换单选按钮。

access_token