MVC3-Daten Anmerkungen Regular Expression validator-Attribut versagt
Eines meiner Modelle hat eine Eigenschaft, GramWeight, definiert als
[Display(Name="Gram Weight")]
[RegularExpression(@"[0-9]*\.?[0-9]+", ErrorMessage = "Gram Weight must be a Number.")]
[Range(0, 9999.99, ErrorMessage = "Value must be between 0 - 9,999.99")]
public decimal? GramWeight { get; set; }
Die Validierung auf dieses Feld schlägt fehl, wenn der Benutzer einen Wert mit einer führenden Dezimalpunkt, wie .23 im Gegensatz zu 0.23. Wenn der Benutzer fügt die 0 an der front, die Validierung geht. Ich hatte angenommen, dies war ein problem mit meinem regulären Ausdruck, aber ich lief einige tests zu diesem http://regexhero.net/tester/ und es scheint zu funktionieren nur fine.
So, wenn es nicht der reguläre Ausdruck, ist es etwas anderes? Ich bin bereit, über javascript Anhängen einer 0 für die Benutzer, wenn Sie es nicht tun. Das ist irgendwie meine Letzte resort-option, aber ich überlege es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es, weil es einen decimal-Typ, haben Sie versucht, die änderung
GramWeight
einen string, nur um zu sehen, was der validator tut in diesem Fall?Für diejenigen, die brauchen eine bessere Lösung, hier ist eine richtige reguläre Ausdruck zur überprüfung von Dezimalzahlen:
Dieser regex erfordert eine Zahl (die null in deinem Fall) vor dem dot-Zeichen und erlaubt maximal 2 Dezimalstellen.