Verwenden von IDataErrorInfo in asp.net mvc

Ich habe eine einfache Adresseingabe-App, als die ich die IDataErrorInfo-Schnittstelle verwenden möchteauf der asp.net-Website erklärt.

Es eignet sich hervorragend für Elemente, die unabhängig validiert werden können, jedoch nicht so gut, wenn einige Elemente von anderen abhängen. Die Überprüfung der Postleitzahl hängt beispielsweise vom Land ab:

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

Sie können die Postleitzahl also erst validieren, nachdem das Land festgelegt wurde, aber es scheint keine Möglichkeit zu geben, diese Bestellung zu kontrollieren.

Ich könnte die Fehlerzeichenfolge von IDataErrorInfo verwenden, diese wird jedoch nicht in der Html.ValidationMessage neben dem Feld angezeigt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage