我现在已经遇到过这个问题几次,而且我似乎无法得到关于它为什么会发生的确切答案。
我有一个字段需要验证输入只接受整数。
我有数据模型属性如下:
[Display(Name = "Customer ID")]
[Required]
[Range(0, int.MaxValue, ErrorMessage="Must be integer")]
public int CustId { get; set; }
我有以下HTML。它是由MVC Scaffolding生成的
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.CustId, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CustId, new { htmlAttributes = new { @class = "form-control" }, })
@Html.ValidationMessageFor(model => model.CustId)
</div>
</div>
...
文本框接受没有错误消息的整数。当我输入字母/字母时,文本框将只清除其字段并显示没有错误消息。但是,如果我输入数字后跟字母,例如。 1234abcd文本框将被正确验证,甚至显示正确的错误消息。
我使用的是ASP.NET MVC 5,我启用了JQuery Validation和Unobstructive。
我尝试使用DataAnnotationExtension添加Integer属性,但我仍遇到同样的问题。
有人指出,它可能是由JQuery Validation中的错误引起的。究竟是什么错误/问题?