我正在尝试对一组复选框实施必需的验证。基本上需要检查其中一个,复选框的数量是动态的。我对下面的代码并不完全自信,我开始假设我可能需要使用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; }
答案 0 :(得分:1)
您应该使用自定义验证程序,而不是RequiredAttribute(您将始终从复选框中获取值),如下所述:
How would you validate a checkbox in ASP.Net MVC 2?
然后将[BooleanRequiredToBeTrue]属性添加到CheckBoxModel类中的Checkbox属性。
当然,您可以使用javascript客户端验证,但也需要在服务器端进行验证。