DataType-Attribut nicht funktioniert
In ASP.NET MVC 3 web-Anwendung habe ich ein viewmodel mit Eigenschaften, die markiert, die mit DataType-Attribute, aber Sie tun nicht tatsächliche Validierung auf cliant Seite, und auf der server-Seite, Warum?
public class RegisterModel
{
[Required(ErrorMessage = "Phone number is required")]
[DataType(DataType.PhoneNumber)]
[Display(Name = "Phone number")]
public string PhoneNumber { get; set; }
[Required(ErrorMessage = "E-mail address is required")]
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter a valid date (ex: 2/14/2011)")]
[Display(Name = "E-mail address")]
public string Email { get; set; }
}
Vielen Dank für die Beantwortung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
DataType-Attribute können nicht verwendet werden, um Benutzereingaben zu überprüfen. Sie geben lediglich Hinweise für die Darstellung von Werten mit Vorlagen Helfer.
Wenn es nicht einen eingebauten validation-Attribut für das, was Sie brauchen, z.B. Palette oder Erforderlich ist, dann, was Sie tun sollten, ist, erstellen Sie eine benutzerdefinierte Eigenschaft validation-Attribut und dekorieren Sie Ihre Modell-Eigenschaft mit, die für die Zwecke der überprüfung. Z.B. für den Datentyp.EmailAddress
Dies ist beschrieben in der Pro-Asp.net mvc 3 Framework (Adam Freeman und Steve Sanderson, Seite 618, oder so ungefähr)
Haben Sie sind:
in Ihrer master-Seite?
Außerdem müssen Sie diese in Ihrem
Web.config
:Ich Stimme mit der Tatsache, dass Datentyp-Attribut führt keine Validierungen. Aber Sie haben Required-Attribut, welches funktionieren sollte.
Müssen Sie mit einem Formular platziert, um das Rendern des controls für Ihre Eigenschaften. Wenn das Formular geschrieben, auf Absenden klicken.
Angenommen, Ihr Formular ist veröffentlicht unter Methode.
Pass der ViewModel-Objekt als parameter. Alle gebuchten Werte aus dem Formular werden in diesem Objekt. Dann überprüfen Sie für den ModelState, ob es gültig ist oder nicht. Wenn es nicht gültig ist Rückkehr die gleiche Ansicht, von wo die form gepostet wurde und pass-ViewModel-Objekt als parameter.
Wenn Sie EditorForModel oder DisplyForModel, dann verwenden Sie ValidationSummary-Helfer zeigen Fehlermeldungen in der Benutzeroberfläche.
Für .NET framework 4.5 und höher es wird ein validation-Attribut namens
[EmailAddress]
verwenden Sie es für Ihre Immobilie wie dieseAuch vergessen Sie nicht, stellen Sie sicher, aktiviert die clientseitige Validierung und unauffällig in
web.config
Dateiund enthalten
js
Dateien in Ihren Rasierer.