我使用自定义视图模型类作为DTO对象来保存数据以在我的View页面上显示。我已通过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 或搜索名字/姓氏组合的功能。我的问题是:
如何应用条件验证?如果我提交带有名/姓的搜索,我不希望验证失败,因为帐号也没有通过。我找到了this链接,它显示了如何实现自定义验证器,但似乎这适用于1个属性。如何通过整个对象模型,并将相应的验证错误消息传递回要在页面上显示的相应字段?这可能吗?