Warum überprüft ASP.NET MVC 3 meine Gleitkommazahlen nicht richtig?

8

Ich habe eine View, in der ich Eingaben erlaube, die Felder werden in meiner SQL Server 2008 R2 Datenbank als Float gesetzt und ich verwende Entity Framwork 4.

Im Entity Framework Model sieht das Feld so aus: private Nullable<global::System.Double> _TestNumber;

Und die View verwendet ein EditorField, um Eingaben wie folgt zuzulassen:

%Vor%

Ich erhalte jedoch diesen Fehler in der Validierungsnachricht: The value '13.51' is not valid for TestNumber. Ich habe es mit einem Komma anstatt mit einem Punkt versucht, dasselbe.

Vorschläge?

    
Filip Ekberg 13.01.2011, 13:39
quelle

1 Antwort

2

Das sollte funktionieren:

Modell anzeigen:

%Vor%

Controller:

%Vor%

Anzeigen:

%Vor%

Eine Sache, die Sie auschecken könnten und die das von Ihnen beobachtete Verhalten erklären könnte, ist die Inkonsistenz zwischen der Client-seitigen Kultur und der serverseitigen Kultur. Wenn beispielsweise die clientseitige Validierung aktiviert ist, die Clientkultur jedoch , als Dezimaltrennzeichen verwendet, schlägt 13.51 die clientseitige Validierung fehl und wenn die Serverkultur . als Dezimaltrennzeichen verwendet, schlägt 13,51 fehl serverseitige Validierung Daher können sowohl 13.51 als auch 13,51 nicht validiert werden, sondern auf verschiedenen Ebenen. Damit der Server dieselbe Kultur wie der Client verwendet, können Sie in Ihrer Datei web.config die Kultur auf auto setzen:

%Vor%     
Darin Dimitrov 13.01.2011, 15:05
quelle