Доступ к проверочному сообщению от модели на контроллере - PullRequest
0 голосов
/ 27 октября 2011

Как получить доступ к сообщению проверки модели через переменную ModelState на контроллере?

Ответы [ 2 ]

1 голос
/ 27 октября 2011
string message = ModelState["SomeProperty"].Errors[0].ErrorMessage;

Конечно, необходимо выполнить проверки, поскольку каждый из этих методов доступа может просто возвращать ноль. Но если вы абсолютно уверены, что SomeProperty имеет хотя бы одно сообщение об ошибке в состоянии модели, все в порядке.

Эти проверки, конечно, могут быть инкапсулированы в метод расширения, чтобы в вашем контроллере вы могли просто:

string message = ModelState.GetFirstErrorMessageFor("SomeProperty");

Например, вот так:

public static class ModelStateExtensions
{
    public static string GetFirstErrorMessageFor(this ModelStateDictionary modelState, string property)
    {
        ModelState value;
        if (!modelState.TryGetValue(property, out value))
        {
            return string.Empty;
        }
        return (value.Errors.FirstOrDefault() ?? new ModelError("")).ErrorMessage;
    }
}
0 голосов
/ 27 октября 2011

Проверьте коллекцию ModelState["PropertyName"].Errors.

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