Daily Archives: Maj 3, 2016

Atrybuty walidacji w modelu

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:

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ść:

Spróbujmy teraz wpisać w to pole wartość z poza podanego zakresu

clip_image001

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.