Projektując formularze, chcielibyśmy aby użytkownik podał w polach odpowiednie dane. Co zrobić aby sprawdzić poprawność wpisywanych danych? Z pomocą przychodzą nam atrybuty walidacji, które udekorują właściwości naszego modelu. Pisząc o walidacji, trzeba wspomnieć że możliwości są dwie: walidacja po stronie klienta oraz walidacja po stronie serwera. Dobrze jest skorzystać z obu opcji i walidować dane już po stronie klienta, aby nie przesyłać żądań do serwera dla każdego pola. Aby aktywować walidację po stronie klienta w aplikacji ASP.NET MVC należy upewnić się czy w pliku web.config, w sekcji appSettings widnieje taki oto wpis:
1 |
<add key="ClientValidationEnabled" value="true" /> |
Dzięki temu oraz atrybutom w modelu uzyskamy walidację w obu przypadkach. Jakie atrybuty mamy do dyspozycji? Poniżej przedstawiam listę, mam nadzieję że żadnego nie pominąłem 😉
[Required(ErrorMessage = „This field is required”)]
[EmailAddress(ErrorMessage=”Incorrect e-mail address”)]
[Range(1, 99, ErrorMessage = „Incorrect value, please type value 1-99″)]
[RegularExpression(@”^[A-Z]+[a-zA-Z’’-‘\s]*$”)]
[Compare(„NewValue”, ErrorMessage = „Values are not the same”)]
[DataType(DataType.Time)]
[StringLength(256, MinimumLength=3)]
[MaxLength(500)]
Przykład:
Mamy w modelu właściwość:
1 2 |
[Range(1, 999, ErrorMessage = "Incorrect value, please type value 1-999")] public int? NumberOfAttendees { get; set; } |
Spróbujmy teraz wpisać w to pole wartość z poza podanego zakresu
Jak widać walidacja zadziałała, bez wysyłania żądania do serwera. W przypadku wyłączonego wykonywania JavaScript w przeglądarce użytkownika, walidacja po stronie klienta nie zadziała, ale walidacja po stronie serwera się wykona.