对使用for循环插入的复选框进行必要的验证

时间:2012-06-06 13:17:06

标签: c# html asp.net-mvc validation razor

我正在尝试对一组复选框实施必需的验证。基本上需要检查其中一个,复选框的数量是动态的。我对下面的代码并不完全自信,我开始假设我可能需要使用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#(Viewmodel):

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

1 个答案:

答案 0 :(得分:1)

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

How would you validate a checkbox in ASP.Net MVC 2?

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

当然,您可以使用javascript客户端验证,但也需要在服务器端进行验证。