【问题标题】:ASP.NET MVC Range attribute on array数组上的 ASP.NET MVC Range 属性
【发布时间】:2016-02-25 22:45:00
【问题描述】:
我的模型中有一个 int 数组。是否可以在其上使用 Range 属性来进行客户端数据验证?
我想做这样的事情:
[Display(Name = "Maths grade")]
[Range(1, 5, ErrorMessage = "Every grade must be between 1 and 5")]
public int[] Maths { get; set; }
我该怎么做这样的事情?
感谢您的帮助!
【问题讨论】:
标签:
asp.net
asp.net-mvc
validation
attributes
【解决方案1】:
您不能将属性应用于数组并获得客户端验证,因为您在视图中生成的元素是数组中的每个项目,而不是数组本身实现客户端和服务器端验证的方法是该值的模型属性并将属性应用于该属性
public class MathModel
{
Display(Name = "Maths grade")]
[Range(1, 5, ErrorMessage = "The grade must be between 1 and 5")]
public int Grade { get; set; }
}
在你的主模型中
public List<MathModel> Maths { get; set; }
在视图中
@for(int i = 0; i < Model.MathModel.Count; i++)
{
@Html.LabelFor(m => m.MathModel[i].Grade)
@Html.TextBoxFor(m => m.MathModel[i].Grade)
@Html.ValidationMessageFor(m => m.MathModel[i].Grade)
}