2015-12-24 3 views
0

У меня есть следующий код в моем классе метаданных для поля Age, который вводится как int.DataAnnotation Range validator не возвращает указанное сообщение об ошибке

[Display(Name = "Age", Prompt = "Age")] 
[Required(AllowEmptyStrings = false, ErrorMessage = "Age is required")] 
[Range(16, 99, ErrorMessage = "Please specify an Age between 16 and 99")] 
public int Age { get; set; } 

На мой взгляд, я поле определяется как:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @type = "number", @min = "16", @max = "99", @maxlength = "2" }) 

В форме HTML отображается как например:

<input name="Age" class="form-control numeric" id="Age" type="number" maxlength="2" min="16" max="99" placeholder="Age" value="" data-val-required="Age is required" data-val-number="The field Age must be a number." data-val="true" data-val-range-min="16" data-val-range-max="99" data-val-range="Please specify an Age between 16 and 99"> 

Однако сообщение об ошибке, возвращаемый :

Please enter a value greater than or equal to 16. 

Имеет anyon e еще встретил эту ошибку раньше?

Любая помощь была бы принята с благодарностью. Благодарю.

+0

Какой-то chump downvotes у меня и нет камней, чтобы оставить комментарий? –

ответ

0

Решено. По-видимому, это происходит, когда поле определяется как число, а не текстовое поле.

Я изменил:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @type = "number", @min = "16", @max = "99", @maxlength = "2" }) 

к:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @maxlength = "2" }) 

и теперь он работает как чавканье.

Смежные вопросы