asp.net – ValidationAttribute类的RequiresValidationContext
在.NET Framework 4.5中,
ValidationAttribute 类现在有一个名为
RequiresValidationContext 的新布尔属性.
我一直在挖掘很长时间,我找不到这个属性的用途.这个的difault值是false,我最初认为如果将其设置为false,则调用以下方法: public virtual bool IsValid(object value) 如果设置为true,则调用下面的一个: protected virtual ValidationResult IsValid(object value,ValidationContext validationContext); 事实证明,无论你设置什么,总是调用返回ValidationResult的IsValid方法. 为了爱上帝,这个RequiresValidationContext属性是什么? 解决方法
RequiresValidationContext对于CompareAttribute或自定义属性等验证程序非常有用.
ValidationAttribute是抽象类,它取决于您的实现意味着什么.例如,我有Validation Attribute,只有当另一个属性有一些值时才检查是否需要某些字段. 如果调用IsValid(对象值),它依赖于Attribute实现.例如: [Display(Name = "Your employer")] [LoginTypeRequired(LoginType = LoginType.Employee,ErrorMessage = "Employee must fill in Employer.")] public int? Employer { get; set; } 属性代码: public class LoginTypeRequiredAttribute : RequiredAttribute { public override bool RequiresValidationContext { get {return true;} } public LoginType LoginType { get; set; } protected override ValidationResult IsValid(object value,ValidationContext validationContext) { RegisterModel model = (RegisterModel)validationContext.ObjectInstance; if (LoginType != model.LoginType) return null; else return base.IsValid(value,validationContext); } public override bool IsValid(object value) { return base.IsValid(value); } } 第一个带有两个参数的方法使用IsValid(对象值,ValidationContext validationContext)来完成上下文的工作.如果一切正常,它会调用基础并且内部.NET 4.5堆栈是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- AutoMapper在asp.netcore中的使用
- asp.net-mvc – ASP.NET MVC不调用global.asax’EndRequest
- asp.net-mvc – MVC Html.CheckBox和表单提交问题
- asp.net – 部署了另一个应用程序后无法找到CodeDom提供程序
- 自KB4338419以来,无法再从Classic ASP创建C#COM对象
- 内存数据库之Apache Ingite
- asp.net-mvc – 无法添加MVC控制器VS2012给出“对象引用未设
- 如何从Asp.Net传递JavaScript的价值
- IIS部署asp.net mvc网站的方法
- [ASP.NET][C#]下载文件时中文文件名出现乱码
- asp.net-mvc – 为什么ASP.NET MVC Html.CheckBo
- asp.net-mvc – VS 2015:无法加载文件或程序集’
- 在ASP.NET MVC视图页面中放置jQuery代码的位置?
- asp.net-mvc-3 – mvc dropdownlistfor没有标记为
- asp.net-mvc – ASP.NET 4.5在调试模式下捆绑 –
- asp.net – On-Session-expire-event?
- asp.net – 保护SQL Server 2008R2数据库
- asp.net-mvc – 模型绑定下拉列表选择的值
- asp.net – post文件提供404页面结果,即使发布的
- 在asp.net中<#eval和<#bind之间有什么区别?