在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
我们知道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)同意 @Html.ValidationMessageFor(m => m.Agree)
最后,我们看效果
是不是很实用呢?MVC真的挺强大的 欢迎大家 扩展更多的这些验证类 感谢阅读.....
|
请发表评论