• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETMVC验证标注的扩展-checkbox必选

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们知道ASP.NET mvc提供一些表单的验证标注,比如必填属性RequiredAttribute

但是这个属性不适合选择框的必选

但是很多时候,我们却是需要一些必选的单选框

比如网站注册的时候,需要用户同意网站的一些规定等等

为此,我封装了一个BooleanRequiredAttribute的标注类,

该类可以标注那些框必填

具体类如下:

public class BooleanRequiredAttribute : ValidationAttribute, IClientValidatable
    {
        public bool Value { get; set; }
        public override bool IsValid(object value) { res = value != null && Value; return res; }

        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ModelClientValidationRule rule = new ModelClientValidationRule
            {
                ValidationType = "brequired",
                ErrorMessage = FormatErrorMessage(metadata.GetDisplayName())
            };
            rule.ValidationParameters.Add("br", res);
            yield return rule;
        }

        public bool res { get; set; }
    }

 

支持客户端和服务器端验证

然后外貌需要添加一个前端的js验证方法

方法也非常简单

//布尔类型必勾选
$.validator.addMethod("brequired", function (value, element, param) {
    return element.checked;
});
$.validator.unobtrusive.adapters.addSingleVal("brequired", "br");

 

就几行代码,

这样,当我们使用的时候

只需要在实体上面进行标注就可以了

 

比如:

        [BooleanRequired]
        [Display(Name = "必选同意")]
        public bool Agree { get; set; }

 

然后在视图上面

<a id="showclause" href="javascript:void(0);">网站服务条款</a>
                            @Html.CheckBoxFor(m => m.Agree)同意&nbsp;
                            @Html.ValidationMessageFor(m => m.Agree)

 

最后,我们看效果

 

是不是很实用呢?MVC真的挺强大的

欢迎大家 扩展更多的这些验证类

感谢阅读.....

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETMVC后台获取前台页面传值的几种方法发布时间:2022-07-10
下一篇:
动态创建ASP.NET控件并保持其状态分析及实现发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap