ASP.NET MVC 4-währungsfeld
Bekomme ich eine Fehlermeldung ("Das Feld Menge muss eine Zahl sein") auf meiner web-Seite auf einem Feld Währung ein. Es ist wegen der dollar-Zeichen ($50.00).
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString = "{0:c}", ApplyFormatInEditMode = true)]
public decimal Amount { get; set; }
@Html.EditorFor(model => model.Amount)
Was muss ich tun, wenn ich will, dass die dollar-Zeichen?
- es kann abhängen, die aktuelle Kultur
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard-MVC modelbinder nicht analysieren kann formatierten Wert für die Anzeige. So, Sie sollten schreiben Sie Ihre eigenen modelbinder und registrieren es für diesen Typ (nehme Typname Foo):
Fügen Sie das Bindemittel für Foo geben Sie bei Application_Start:
Ah, und Letzte Sache - entfernen
data-val-number
Attribut-Menge textbox (sonst wirst du weiter sehen Nachricht, dass es nicht eine Zahl):Nun erhalten Sie eine Validierung Fehlermeldung, wenn input-Wert wird nicht der richtige Betrag (z.B.
$10F.0
).BTW ich denke, es ist besser
ApplyFormatInEditMode = false
als Umsetzung all dieses Zeug zu helfen, MVC binden Sie Ihre benutzerdefinierten formatierten string.Können Sie mit System.ComponentModel.DataAnnotations.RegularExpressionAttribute.
Können Sie auch "Bearbeiten" - Modus auf false. Dann wird es nur zeigen Sie den decimal-Wert während der text formatiert werden.