У меня есть простая форма, в которой используется ненавязчивая проверка на стороне клиента ASP.NET MVC 3.
Модель выглядит примерно так (имена изменены для конфиденциальности):
public class MyInputModel
{
public MyInputModel()
{
}
public MyInputModel(MyViewData viewData)
{
ViewData = viewData;
MaxValueForSize = viewData.MaxSize;
}
public int MaxValueForSize { get; set; }
[RegularExpression("[1-9][0-9]*",ErrorMessage = "The value must be a whole number.")]
public int Size { get; set; }
[StringLength(255)]
[Required]
public string Description{ get; set; }
}
На мой взгляд, я добавил скрытое поле для MaxValueForSize
и хочу сравнить введенное значение для Size
со значением, меньшим или равным MaxValueForSize
.
Я знаю, что могу сделать этот серверрядом с переопределением атрибута проверки, например, так:
internal class SizeValidAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if(value != null)
{
var model = (MyInputModel) validationContext.ObjectInstance;
if ((int)value > model.MaxValueForSize)
return new ValidationResult(ErrorMessage);
}
return base.IsValid(value, validationContext);
}
}
Однако я хотел бы (нужно) иметь проверку на стороне клиента для этого свойства.Подобно тому, как работает аннотация Compare
.
Кто-нибудь знает способ сделать это?Нужно ли как-то продлевать валидацию на стороне клиента?
Спасибо за вашу помощь.