加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC3模型验证DataAnnotations使用客户端验证执行小于或

发布时间:2020-12-16 09:21:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个简单的表单,它使用ASP.NET MVC 3不显眼的客户端验证. 该模型看起来有点像这样(名称因隐私而改变): public class MyInputModel{ public MyInputModel() { } public MyInputModel(MyViewData viewData) { ViewData = viewData; MaxValueForSize = vie
我有一个简单的表单,它使用ASP.NET MVC 3不显眼的客户端验证.

该模型看起来有点像这样(名称因隐私而改变):

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读