我的表单中有 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的值都是假的。
我研究过自定义验证,但似乎找不到我要找的东西。
还有其他人遇到过这个问题吗?任何帮助将不胜感激
谢谢,
尝试研究自定义验证,但没有成功。
我对 AssertThat 的想法是错误的
我将 AsertThat 更改为:
[AssertThat("(A == true) || (B == true) || (C == true) || (D== true)", ErrorMessage = "Required")]
这正如预期的那样工作。