在 MVC 中验证多个复选框

问题描述 投票:0回答:1

我的表单中有 4 个复选框,并希望用户在提交表单时至少选择其中一个复选框。

我正在使用“ExpressiveAnnotations.Attributes;”参考,因为我们在项目的其他部分使用它,但它似乎不适用于复选框。

我有 4 个复选框,可以说它们是 A、B、C、D,我已将复选框 D 声明为:

[Display(Name = "D Name")]
[AssertThat("(A == false) && (B == false) && (C == false) && (D== false)", ErrorMessage = "Required")]
public bool D { get; set; }

如果我将 'AssertThat' 更改为 'RequiredIf' - 那么会出错,A、B、C、D 需要为 Nullable

当我提交表单时,表单上的所有其他验证都有效,除了这个。提交后,我可以看到 A、B、C、D 的值为 false。

我已经研究过自定义验证,但似乎找不到我正在寻找的东西。

还有其他人遇到过这个问题吗?任何帮助将不胜感激

谢谢,

尝试研究自定义验证,但没有成功。

model-view-controller data-annotations
1个回答
0
投票

我对 AssertThat 的想法是错误的

我将 AsertThat 更改为:

[AssertThat("(A == true) || (B == true) || (C == true) || (D== true)", ErrorMessage = "Required")]

这正如预期的那样工作。

© www.soinside.com 2019 - 2024. All rights reserved.