HTML 5 - оно
в Razor это делается в модели
[Range(1, 100000, ErrorMessage = "Accommodation invalid (1-100000).")] public int MaximumAccommodation { get; set; }
Во, вспомнил, как это называется. Это у вас серверная валидация. Она у меня тоже есть, только там самописное, без этих атрибутов. А я ещё хочу вместо клиенсткой валидации просто запретить юзеру вводить неправильные значения.
Кстати, а как вы привяжете проперти из Range (мин и макс) к пропертям контрола, в котором вводится значение? Я в своё время тоже радовался - классная же валидация. А когда захотел привязаться, так надо было из модели в модель представления эти атрибуты вытаскивать. И пошла возьба с рефлексией и вставка этих атрибутов в виде обычных свойств в модели представления.
Если ваши контролы могут вытаскивать атрибуты и привязываться к их свойствам, то ок. Но в основном они не могут. Это для ASP.NET MVC Майкрософт написала UI фреймворк, который из атрибутов вытаскивал значения. Но это серверный фреймворк и серверная валидация, а не привязка на клиенте. Натравите на это верху какой-нибудь KnockoutJS, Ангуляр или что вы на клиенте используете, и попробуйте в нём вытащить значения атрибутов из модели.