Großbuchstaben-Attribut, das die Eingabe in Großbuchstaben konvertiert

Ich arbeite in MVC4 und möchte ein Modell mit einem definierenUppercase Attribut. Die Idee wäre, dass das Vorhandensein des Großbuchstaben-Attributs dazu führen würde, dass der Modellwert beim Eintreffen auf dem Server in Großbuchstaben umgewandelt wird.

Im Moment habe ich folgenden Code im Modell:

    [Required]
    [Display(Name="Account Code")]
    [StringValidation(RegExValidation.AccountCode, Uppercase=true)]
    public string Account
    {
        get { return _account; }
        set
        {
            if (value != null)
                _account = value.ToUpper();
        }
    }

Aber was ich wirklich gerne hätte, ist Folgendes:

    [Required]
    [Display(Name="Account Code")]
    [StringValidation(RegExValidation.AccountCode)]
    [Uppercase]
    public string Account { get; set; }

Ich denke, dass ich das Großbuchstabenattribut als erstellen mussValidationAttribute um sicherzustellen, dass es ausgelöst wird, wenn das Modell auf den Server trifft. Aber das scheint ein bisschen falsch zu sein, da ich die Daten nicht wirklich validiere. Gibt es einen besseren Weg?

Gibt es auch eine Möglichkeit, die Aufrufreihenfolge für die Attribute sicherzustellen? Ich möchte wirklich die Daten in Großbuchstaben vor dem Brauch konvertierenStringValidation Attribut wird ausgelöst, da hierdurch die Groß- und Kleinschreibung des Texts im Regex-Muster überprüft wird.

Um dem etwas Hintergrund hinzuzufügen, möchte ich die Notwendigkeit reduzieren, Code hinzuzufügen, um die Daten in Großbuchstaben zu schreiben. Das Nirwana ist ein einzelnes Attribut, das die Daten auf dem Weg zum Server entweder in der Modellbindungs- oder in der Validierungsphase aktualisiert. Dieses Attribut kann dann in der referenziert werdenStringValidation Attribut zum Ändern des in den Prüfungen verwendeten RegEx-Werts. Ich kann dieses Attribut dann auch in einem benutzerdefinierten suchenTextBoxFor Hilfsmethode, so dass ich hinzufügen kanntext-transform: uppercase so sieht es auf der Client-Seite richtig aus.

Hat jemand da draußen irgendwelche Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage