我使用自定义视图模型类作为 DTO 对象来保存数据以在我的视图页面上显示。我已通过 DataAnnotations 库应用验证,以对这些类的属性执行服务器端验证。这是一个简单的例子:
[DisplayName("Customer Account Id")]
[Required(ErrorMessage = "* Account Number is required")]
[StringLength(16, ErrorMessage = "* Account Number must be 16 characters in length", MinimumLength = 16)]
public string CustomerAccountId { get; set; }
如果有人提交了一个搜索,并且这个字段没有通过或者通过的长度不是 16,验证失败,并且通过 ValidationMessage HtmlHelper 在页面上显示错误消息:
<%= Html.ValidationMessage("CustomerAccountId")%>
现在我需要添加按帐户 ID或名字/姓氏组合搜索的功能。我的问题是这样的:
如何应用条件验证?如果我使用名字/姓氏提交搜索,我不希望验证失败,因为帐号也没有通过。我找到了这个链接,它显示了如何实现自定义验证器,但这似乎适用于 1 个属性。如何传递整个对象模型,并将适当的验证错误消息传递回要在页面上显示的适当字段?这可能吗?