Sprawdzanie poprawności przy użyciu atrybutów w asp.net mvc jest naprawdę przyjemne. Do tej pory korzystałem z [Range(min, max)]
walidatora do sprawdzania wartości, takich jak np:
[Range(1, 10)]
public int SomeNumber { get; set; }
Jednak - teraz muszę osobno sprawdzić stan min i max. Spodziewałem się znaleźć takie atrybuty:
[MinValue(1, "Value must be at least 1")]
[MaxValue(10, "Value can't be more than 10")]
public int SomeNumber { get; set; }
Czy są jakieś predefiniowane atrybuty do pisania tego? Albo jak to osiągnąć?
asp.net-mvc-3
validation
stiank81
źródło
źródło
Odpowiedzi:
Oto jak napisałbym walidator dla MaxValue
Atrybut MinValue powinien być mniej więcej taki sam
źródło
IClientValidation
interfejs na powyższym atrybucie i zwrócić poprawne wartości zGetClientValidationRules
metodyNie sądzę, że istnieje atrybut walidacji min / max. Użyłbym czegoś takiego
dla wartości minimalnej 1 i
dla wartości maksymalnej 10
źródło
RangeAttribute
maAllowMultiple = false
, więc nie można tego skompilować.Kompletny przykład tego, jak można to zrobić. Aby uniknąć konieczności pisania skryptów walidacji po stronie klienta, użyto istniejącego ValidationType = "zakres".
źródło
Wtyczka jQuery Validation już implementuje reguły min i max, musimy tylko stworzyć adapter dla naszego atrybutu niestandardowego:
Adapter:
Atrybut minimalny byłby bardzo podobny.
źródło