В моем приложении бритвенных страниц у меня есть поле для ввода количества. Чтобы убедиться, что пользователи не могут вводить что-либо ниже 0 или выше 99 999, у меня есть проверка на месте. Проверка работает. Проблема в том, что сообщение об ошибке отображается при отправке формы, даже если значение проходит проверку. Он не отображается при первой загрузке страницы, только при отправке формы. Страница перезагружается, если в дальнейшем происходит ошибка (функциональность не связана с этим вопросом), и это происходит, когда сообщение об ошибке отображается неправильно. Сообщение об ошибке исчезает, если я изменяю значение, но сообщение об ошибке, появляющееся, когда его не должно быть, все равно заставит пользователей ошибочно полагать, что ошибка была хотя бы частично из-за количества (когда на самом деле с ним все в порядке).
<td class="col-4">
<input type="text" class="form-control mb-2 mr-sm-2" asp-for="PartInfo" value="@part.QUANTITY" id="@part.QUANTITY" name="PartInfo" onchange="HighlightField(this)" />
<span class="text-danger" asp-validation-for="PartInfo"></span>
</td>
[DisplayName("Quantity"), BindProperty, Required]
[Range(1, 99999, ErrorMessage = "Please enter a number between 1 and 99,999.")]
public List<int> PartInfo { get; set; }
Эта ссылка показывает поле ввода на странице с сообщением об ошибке.
Любая помощь приветствуется! Большое спасибо!
Редактировать: Забыл включить это: я искал этот ответ, но все, что я нашел, это случаи, когда это происходило с ASP MVC, а не с Razor Pages. Решение здесь не сработало.
Редактировать # 2: Можно упомянуть, что это то, что у меня было в какой-то момент, и у меня возникла точно такая же проблема с отображением сообщения об ошибке. У него были другие проблемы, поэтому я изменил его.
[DisplayName("Quantity"), BindProperty, Required, MaxLength(5)]
[RegularExpression(@"^\\d+$", ErrorMessage = "The quantity must be a number.")]
public List<int> PartInfo { get; set; }