我有以下课程:
public class Reference : AuditableTable
{
[Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")]
[DisplayName("Order")]
public int Order { get; set;
}
使用MVC,Range检查应该阻止用户输入错误数据。但是我没有通过MVC前端的其他代码允许我输入类似999的值。在类级别检查这是否正常,我该如何实现呢?
答案 0 :(得分:0)
如果要在客户端验证字段,则应使用验证器。在服务器验证的情况下,此代码应该有效。我在谈论asp.net MVC。
答案 1 :(得分:0)
您可以使用:
private bool ValidateModel(dynamic model)
{
var validationResults = new List<ValidationResult>();
var ctx = new ValidationContext(model, null, null);
return Validator.TryValidateObject(model, ctx, validationResults, true);
}
http://msdn.microsoft.com/en-us/library/dd411772.aspx
您可以放置任何模型类型而不是动态。
答案 2 :(得分:0)
public class Reference : AuditableTable
{
[Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")]
[DisplayName("Order")]
public int Range { get;
set {
if((value < 0) || (value > 99))
{
throw new Exception(string.Format("{0} must be between 0 and 99",value.ToString()));
}
else
{
Range = value;
}
}
}