Как подавить повторяющиеся сообщения об ошибках проверки в пользовательской проверке MVC - PullRequest
0 голосов
/ 23 ноября 2011

Я создал личную модель с пользовательской проверкой, чтобы пользователь вводил имя человека.Проблема в том, что имя состоит из нескольких полей, и мне нужно заполнить хотя бы одно из полей.

Вот мой проверочный код:

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 сообщений об ошибках и пять выделенных полей.Я отображаю только сообщения об ошибках, используя @ Html.ValidationSummary ().

Как мне подавить 4 дополнительных сообщения и при этом выделить 5 полей, которые являются проблемой.

1 Ответ

3 голосов
/ 23 ноября 2011

Некоторые из быстрых решений:

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)
...

Таким образом, вы получите одно сообщение и выделенные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...