Ich möchte angeben, dass ein Dezimalfeld für einen Preis> = 0 sein muss, aber ich möchte nicht wirklich einen Maximalwert festlegen.
Folgendes habe ich bisher ... Ich bin mir nicht sicher, wie ich das richtig machen soll.
[Range(typeof(decimal), "0", "??"] public decimal Price { get; set; }
c#
.net
asp.net-mvc
data-annotations
user169867
quelle
quelle
Antworten:
Wie wäre es mit so etwas:
Das sollte das tun, wonach Sie suchen, und Sie können die Verwendung von Zeichenfolgen vermeiden.
quelle
The field Fixed price discount must be between 0.01 and 1.79769313486232E+308.
Wenn Sie sich Sorgen machen, dass die Saite gut aussieht, können Sie dies tun:
Dies hat eine Standardfehlermeldung von:
quelle
Es scheint keine andere Wahl zu sein, als den Maximalwert manuell einzugeben. Ich hatte gehofft, dass es eine Art Überlastung gibt, bei der Sie keine angeben müssen.
quelle
[Min(0)]
- Dies hat auch eine bessere Validierungsnachricht. Ich würde vorschlagen, Ihre Antwort zu aktualisierenSie können verwenden:
Dies legt einen erforderlichen Minimalwert von 0 (Null) und keinen Maximalwert fest.
Sie benötigen DataAnnotationsExtensions , um dies zu verwenden.
quelle
Wenn Sie mit Preisen arbeiten, können Sie sicher davon ausgehen, dass nichts mehr als 1 Billion Dollar kostet.
Ich würde verwenden:
Oder wenn Sie es wirklich brauchen, fügen Sie einfach den Wert von
Decimal.MaxValue
(ohne Komma) ein:79,228,162,514,264,337,593,543,950,335
Beides funktioniert gut, wenn Sie nicht aus Simbabwe kommen.
quelle
[Range(0.0,Decimal.MaxValue)]
?Sie können die benutzerdefinierte Validierung verwenden:
Typ der Validierungsmethoden:
quelle
Ich wollte so etwas ausprobieren:
Das Problem dabei ist jedoch, dass der Compiler einen konstanten Ausdruck wünscht, der nicht zulässig ist
((double)0).ToString()
. Der Compiler wird nehmenquelle
mit Range mit
Hoffe es wird helfen
quelle
[Bereich (0,01,100000000, ErrorMessage = "Preis muss größer als Null sein!")]
quelle
Ich würde sagen,
decimal.MaxValue.ToString()
da dies die effektive Obergrenze für den Dezmialtyp ist, entspricht dies dem Fehlen einer Obergrenze.quelle