对插入 for 循环的复选框进行必需验证

本文关键字:验证 复选框 插入 for 循环 | 更新日期: 2023-09-27 18:36:31

我正在尝试对一组复选框实现所需的验证。基本上需要选中其中一个,并且复选框的数量是动态的。我对下面的代码不太有信心,我开始假设我可能需要使用 Javascript。我认为代码最适合自己。

.HTML:

       @for (var i = 0; i < Model.Sessions.Count(); i++ )
    {
        @Html.HiddenFor(it => it.Sessions[i].Id)
        @Html.LabelFor(it => it.Sessions[i].Name, Model.Sessions[i].Name)
        @Html.CheckBoxFor(it => it.Sessions[i].Checkbox)
    }
    @Html.ValidationMessageFor(model => model.Sessions)

C# (视图模型):

    [NotNull]
    [GlobalisedRequired]
    public virtual List<CheckBoxModel> Sessions { get; set; }

对插入 for 循环的复选框进行必需验证

而不是 RequiredAttribute(您将始终从复选框中获取值),您应该使用自定义验证器,如下所述:

您将如何验证 MVC 2 ASP.Net 复选框?

然后将 [BooleanRequiredToBeTrue] 属性添加到 CheckBoxModel 类中的 Checkbox 属性。

当然,您可以使用javascript客户端验证,但是服务器端的验证也是必要的。