我想将数据库中列的值限制为数据范围。
在这种特殊情况下,我希望Size
列限制1到4之间的整数。
我已经使用[Range(1, 4)]
来创建此目标。已创建了列,但可以获取任何范围的整数值!
关于客户端验证,我可以输入任何整数值范围!
我该如何解决这个问题?
我已经使用ASP.NET MVC 5,Entity Framework 6.x,Sql Server 2008R2和Code-First来创建数据库。
如果有必要,可以通过db-migration使用您的解决方案。
我的模特:
public class Tag : Entity, ITag
{
[Range(1, 4)]
public virtual int Size { get; set; }
[Required]
[StringLength(25)]
public virtual string Title { get; set; }
[StringLength(256)]
public virtual string Description { get; set; }
public virtual bool IsActive { get; set; }
public virtual ISet<ArticleTag> ArticleTags { get; set; }
public virtual ISet<ProjectTag> ProjectTags { get; set; }
}
我的观点的一部分:
<div class="form-group">
@Html.LabelFor(model => model.Size, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Size)
@Html.ValidationMessageFor(model => model.Size)
</div>
</div>
答案 0 :(得分:1)
这是一个已知问题,显然jquery-validation版本存在问题,因此您可以尝试使用以下版本:
Microsoft jQuery Unobtrusive Validation (at least 2.0.30116.0)
Microsoft jQuery Unobtrusive Ajax (at least 2.0.30116.0)
jQuery Validation 1.11.1
你可以在这里找到类似的问题: client-side validation trips on DataAnnotation Range attribute
另有关于此的报告: https://github.com/jzaefferer/jquery-validation/issues/626