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

Arbeite ich in MVC4 und definieren wollen, ein Modell mit einem Uppercase Attribut. Die Idee wäre, dass die Anwesenheit des Groß-Attribut bewirkt, dass der Modell-Wert werden in Großbuchstaben umgewandelt, wenn Sie angekommen auf dem server.

Im moment habe ich den folgenden code innerhalb des Modells:

    [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 mag, ist dieses:

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

Ich denke, dass ich möglicherweise zu erstellen, die die Groß-Attribut als ValidationAttribute um sicherzustellen, dass er gefeuert wird, wenn das Modell zuvor auf den server. Aber das scheint mir ein wenig falsch, ich bin nicht wirklich der Validierung der Daten. Gibt es einen besseren Weg?

Außerdem gibt es jede Möglichkeit, um sicherzustellen, die Anrufung, um auf die Attribute? Ich wirklich wollen, um zu konvertieren der Daten in Großbuchstaben umwandeln, bevor Sie die benutzerdefinierte StringValidation Attribut feuert, als dieser überprüft den Fall der text in der regex-Muster.

Hinzufügen von ein wenig hintergrund zu dieser, ich möchte reduzieren die Notwendigkeit zum hinzufügen von code zu groß-die Daten. Das nirvana wäre ein einzelnes Attribut, das aktualisiert die Daten auf dem Weg in den server, entweder in der Modell-Bindung oder die Validierung der Bühne. Dieses Attribut kann dann verwiesen werden, in der StringValidation - Attribut zur änderung der RegEx-Wert verwendet, in seine Prüfungen. Kann ich auch dann diese lookup-Attribut in einem benutzerdefinierten TextBoxFor Helfer-Methode, so dass ich hinzufügen kann text-transform: uppercase so sieht es richtig auf der client-Seite.

Hat jemand irgendwelche Ideen da draußen?

InformationsquelleAutor Nick | 2013-07-17

Schreibe einen Kommentar