ASP.NET MVC验证标注的扩展-checkbox必选 – 麦田怪人

我们知道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真的挺强大的

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

感谢阅读…..

 

本文链接:ASP.NET MVC验证标注的扩展-checkbox必选,转载请注明。



You must enable javascript to see captcha here!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量