используя IDataErrorInfo в asp.net mvc

У меня есть простое приложение для ввода адреса, которое я пытаюсь использовать интерфейс IDataErrorInfo какобъяснил на сайте asp.net.

Он отлично работает для элементов, которые могут быть проверены независимо, но не так хорошо, когда некоторые элементы зависят от других. Например, проверка почтового индекса зависит от страны:

    private string _PostalCode;
    public string PostalCode
    {
        get
        {
            return _PostalCode;
        }
        set
        {
            switch (_Country)
            {
                case Countries.USA:
                    if (!Regex.IsMatch(value, @"^[0-9]{5}$"))
                        _errors.Add("PostalCode", "Invalid Zip Code");
                    break;
                case Countries.Canada:
                    if (!Regex.IsMatch(value, @"^([a-z][0-9][a-z]) ?([0-9][a-z][0-9])$", RegexOptions.IgnoreCase))
                        _errors.Add("PostalCode", "Invalid postal Code");
                    break;
                default:
                    throw new ArgumentException("Unknown Country");
            }
            _PostalCode = value;
        }
    }

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

Я мог бы использовать строку Error из IDataErrorInfo, но она не отображается в Html.ValidationMessage рядом с полем.

Ответы на вопрос(3)

Ваш ответ на вопрос