fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

Rejestracja własnych atrybutów walidacji w ASP.NET MVC dla client-side logic


26.07.2010

Utworzenie własnego atrybutu walidacji danych jest w ASP.NET MVC niezwykle banalne, szczególnie jeśli dziedziczymy z jakiegoś już istniejącego. Dla przykładu takie cacko pozwoli na wprowadzenie jedynie wartości czasu:

  1:  public class TimeSpanFormatAttribute : RegularExpressionAttribute
  2:  {
  3:  	public TimeSpanFormatAttribute()
  4:  		: base(@"^\d{2}:\d{2}:\d{2}$")
  5:  	{
  6:  		this.ErrorMessage = "Expected time in format HH:MM:SS";
  7:  
  8:  	}
  9:  }

Wystarczy zaaplikować w modelu i… już? Niestety nie. Owszem, server-side wszystko śmiga, jednak mi bardzo zależało na sprawdzeniu tego po stronie klienta.

Wraz ze znajomym zagłębiliśmy się każdy w swoją instancję Reflectora z załadowaną dllką MVC i po kilku nieudanych eksperymentach działającą walidację uzyskaliśmy dzięki jednemu prostemu dodatkowemu krokowi:

  1:  DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(TimeSpanFormatAttribute), typeof(RegularExpressionAttributeAdapter));

Taką rejestrację atrybutu umieszczamy w global.asax.Application_Start(), i to wszystko. Dokładnej ścieżki która nas do tego doprowadziła nie potrafię teraz odtworzyć, ale była zamotana i – jeśli bym ją tu umieszczał – prawdopodobnie tak nudna jak ta :).

Niby nic, ale jednak w “MVC 2 In Action” tego nie znalazłem (… a może słabo szukałem?).

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Zapisując się na newsletter zgadzasz się na przetwarzanie Twoich danych osobowych w celu wysyłania na wskazany przez Ciebie adres e-mail informacji handlowych o nowościach, promocjach, produktach i usługach związanych z serwisem devstyle.pl. Będzie to marketing bezpośredni, do realizacji którego wykorzystam Twoje telekomunikacyjne urządzenia końcowe. Administratorem Twoich danych osobowych będzie Maciej Aniserowicz prowadzący działalność gospodarczą w Białymstoku (15-215) przy ul. Konopnickiej 14/8, NIP 5422824401. Przysługuje Tobie prawo do cofnięcia zgody, żądania wglądu do Twoich danych, wniesienia sprzeciwu co do ich przetwarzania, sprostowania, usunięcia i ograniczenia przetwarzania. Więcej informacji o tym jak przetwarzam Twoje dane znajdziesz na devstyle.pl/RODO. Powered by ConvertKit

Comments are closed.

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Facebook

Książka

Zobacz również