usando IDataErrorInfo no asp.net mvc

Eu tenho um aplicativo de entrada de endereço simples que estou tentando usar a interface IDataErrorInfo comoexplicado no site asp.net.

Funciona muito bem para itens que podem ser validados independentemente, mas não tão bem quando alguns itens dependem dos outros. Por exemplo, validar o código postal depende do país:

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

Assim, você só pode validar o código postal depois que o país tiver sido definido, mas parece não haver nenhuma maneira de controlar esse pedido.

Eu poderia usar a string Error de IDataErrorInfo, mas isso não aparece no Html.ValidationMessage próximo ao campo.

questionAnswers(3)

yourAnswerToTheQuestion