MVC 3 Razor - проверка запуска от контроллера - PullRequest
10 голосов
/ 03 апреля 2011

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

Ответы [ 3 ]

29 голосов
/ 03 апреля 2011

В контроллере: ModelState.AddModelError("ErrorEmail", "Error Message");

В представлении: @Html.ValidationMessage("ErrorEmail")

Надеюсь, это поможет

3 голосов
/ 03 апреля 2011

Я думаю, что вы ищете RemoteAttribute.

Это атрибут ValidationAttribute для удаленной проверки. Он работает как другие атрибуты проверки, добавляя ошибки модели в ваш словарь состояния модели.

Ознакомьтесь с этими статьями об использовании RemoteAttribute:

0 голосов
/ 12 апреля 2019

Я нашел способ выполнить условную проверку из ViewModel. Класс VM должен будет реализовать интерфейс IValidatableObject.

Затем добавьте метод, подобный этому, внизу виртуальной машины:

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (validationContext == null)
            return null;

        var valResults = new List<ValidationResult>();

        if (!EmailExists))
            valResults.Add(new ValidationResult($"Email is required.", new[] { "ErrorEmail" }));

        return valResults;
    }

И, конечно, вам понадобится это в представлении:

@Html.ValidationMessage("ErrorEmail")

Надеюсь, это поможет!

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