przy użyciu IDataErrorInfo w asp.net mvc

Mam prostą aplikację do wprowadzania adresów, której próbuję użyć interfejsu IDataErrorInfo jakowyjaśnione na stronie asp.net.

Świetnie sprawdza się w przypadku elementów, które można zatwierdzać niezależnie, ale nie tak dobrze, gdy niektóre elementy zależą od innych. Na przykład sprawdzanie poprawności kodu pocztowego zależy od kraju:

    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;
        }
    }

Możesz więc zweryfikować kod pocztowy dopiero po ustawieniu kraju, ale wydaje się, że nie ma możliwości kontrolowania tego zamówienia.

Mogłem użyć ciągu Error z IDataErrorInfo, ale nie pojawia się on w wiadomości Html.ValidationMessage obok pola.

questionAnswers(3)

yourAnswerToTheQuestion