我有一个简单的表单,它使用ASP.NET MVC 3不显眼的客户端验证. 该模型看起来有点像这样(名称因隐私而改变): public class MyInputModel{ public MyInputModel() { } public MyInputModel(MyViewData viewData) { Vi
          该模型看起来有点像这样(名称因隐私而改变):
public class MyInputModel
{
    public MyInputModel()
    {
    }
    public MyInputModel(MyViewData viewData)
    {
        ViewData = viewData;
        MaxValueForSize = viewData.MaxSize;
    }
    public int MaxValueForSize { get; set; }
    [RegularExpression("[1-9][0-9]*",ErrorMessage = "The value must be a whole number.")]
    public int Size { get; set; }
    [StringLength(255)]
    [Required]
    public string Description{ get; set; }
} 
 在我看来,我为MaxValueForSize设置了一个隐藏字段,我想将输入的Size值与小于或等于MaxValueForSize属性进行比较.
我知道我可以通过覆盖验证属性来做这个服务器端,如下所示:
internal class SizeValidAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        if(value != null)
        {
            var model = (MyInputModel) validationContext.ObjectInstance;
            if ((int)value > model.MaxValueForSize)
                return new ValidationResult(ErrorMessage);
        }
        return base.IsValid(value, validationContext);
    }
} 
 但是,我想(需要)对此属性进行客户端验证.与比较注释的工作方式类似.
有谁知道这样做的方法?我是否需要以某种方式扩展客户端验证?
谢谢你的帮助.
看看这篇文章.它解释了如何扩展ASP.NET MVC模型验证以支持跨字段验证:扩展ASP.NET MVC的验证
http://blogs.msdn.com/b/mikeormond/archive/2010/10/05/extending-asp-net-mvc-s-validation.aspx
