我创建了具有自定义验证功能的人员模型,以确保用户输入此人的姓名。问题是名称由几个字段组成,我只需要至少完成一个字段。
这是我的验证码:
if (string.IsNullOrWhiteSpace(this.Title) &&
string.IsNullOrWhiteSpace(this.Initals) &&
string.IsNullOrWhiteSpace(this.Forename) &&
string.IsNullOrWhiteSpace(this.Surname) &&
string.IsNullOrWhiteSpace(this.Company))
yield return new ValidationResult("You must enter a name or company name.",
new string[] { "Title", "Initals", "Forename", "Surname", "Company" });
我希望看到一条错误消息,突出显示5个字段,但是我收到5条错误消息,突出显示5个字段。我只使用@ Html.ValidationSummary()显示错误消息。
如何抑制4条额外消息,并仍然突出显示问题的5个字段。
答案 0 :(得分:3)
一些快速解决方案:
1)在验证码中设置2 ValidationResult:
...
yield return new ValidationResult("You must enter a name or company name.");
yield return new ValidationResult("any text",
new string[] { "Title", "Initals", "Forename", "Surname", "Company" });
2)在视图中排除摘要中的属性验证消息:
@model SomeModel
...
@Html.ValidationSummary(true)
...
因此,您将获得单个消息并突出显示输入。