2016-04-26 7 views
0

Ich habe Modell wieC# mvc 5 Daten Annotation einschränken Zahlen hinter dem Komma

public class Invoice 
{ 
    int Invoice Number{get;set;} 

    [DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = false)] 
    public float ReceivedAmount { get; set; } 
} 

Im Hinblick Seite, die ReceivedAmount viele Zahlen nach Dot wie 500,25251 akzeptiert, aber ich möchte 500,25

Es sollte verhindern, dass der Wert in das Feld eingegeben wird. Nicht zeigen Fehlermeldung

Vielen Dank im Voraus

+0

Können Sie bitte mit meiner Antwort überprüfen? – Dilip

+0

es klingt für mich, wie dies wahrscheinlich am besten durch Javascript behandelt – user1666620

+0

@ user1666620 Geben Sie ein Beispiel – anand

Antwort

0

Verwenden folgenden Code:

[DisplayFormat(DataFormatString="{0:#.##}")] 
    public float ReceivedAmount { get; set; } 
+0

Downvoter teilen den Grund. Dieser Code muss funktionieren. – Dilip

+0

Die Frage ist nur Eingänge mit bis zu 2 Dezimalstellen zuzulassen. Ihre Antwort zeigt nur Ausgaben mit 2 Dezimalstellen an. – user1666620

+0

Diese Eigenschaft funktioniert für das Modell, ob es Eingabe oder Ausgabe ist – Dilip

1

annehmen Eingang als nichts mit [DisplayFormat()] zu tun, können Sie noch hinzufügen, wenn Sie wollen, aber das ist es nicht. Was Sie brauchen, ist eine [RegularExpression()]

[RegularExpression(@"^\d+.\d{0,2}$",ErrorMessage = "Price can't have more than 2 decimal places")] 
public float ReceivedAmount { get; set; } 

RegularExpressionAttribute Klasse: Gibt an, dass ein Datenfeld Wert in ASP.NET Dynamic Data muß den angegebenen regulären Ausdruck entspricht. - msdn

0
[RegularExpression(@"^[0-9]+(\.[0-9]{1,2})?$",ErrorMessage = "The Price cannot exceed 2 decimal places. Please Re-enter")] 
public float ReceivedAmount { get; set; }