2

我有以下课程:

public class Reference : AuditableTable
{
     [Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")]
     [DisplayName("Order")]
     public int Order { get; set; 
}

使用 MVC,范围检查应该会阻止用户输入错误数据。但是,我的其他不通过 MVC 前端的代码允许我输入像 999 这样的值。在类级别对此进行检查是否正常,我该如何实现它?

4

3 回答 3

0

如果你想在客户端验证字段,那么你应该使用验证器。在服务器验证的情况下,此代码应该可以工作。我说的是asp.net MVC。

于 2012-08-25T08:26:27.220 回答
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

您可以放置​​任何模型类型,而不是动态。

于 2012-08-25T08:30:00.883 回答
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;
        }
        }
    }
于 2012-08-25T08:30:35.940 回答