Tag: validation

我可以在自定义ConfigurationSection上指定具有IntegerValidator属性的范围吗?

我有一个包含以下ConfigurationSection的类: namespace DummyConsole { class TestingComponentSettings: ConfigurationSection { [ConfigurationProperty(“waitForTimeSeconds”, IsRequired=true)] [IntegerValidator(MinValue = 1, MaxValue = 100, ExcludeRange = false)] public int WaitForTimeSeconds { get { return (int)this[“waitForTimeSeconds”]; } set { this[“waitForTimeSeconds”] = value; } } [ConfigurationProperty(“loginPage”, IsRequired = true, IsKey=false)] public string LoginPage { get { return (string)this[“loginPage”]; } set { this[“loginPage”] = value; } […]

在IValidatableObject.Validate方法中访问数据库是个好主意吗?

我有一个模型课。 相关数据库表对两个字段(例如Column1和Column2)具有唯一约束。 我不确定在保存对象之前validation对象的最佳方法是什么。 我正在考虑实现IValidatableObject并在Validate方法中进行此validation。 这是个好主意吗? 我不确定,因为它需要从实体类中的DB读取数据。 public class Class1 :IValidatableObject { [Key] public int ID { get; set; } [Required] public int Column1 { get; set; } [Required] public int Column2 { get; set; } public IEnumerable Validate(ValidationContext validationContext) { using (DatabaseContext db = new DatabaseContext()) { //access DB to check if this combination of […]

DDD域模型复杂validation

我正在使用域驱动设计原则重写我的ASP.NET MVC应用程序。 我正在尝试validation我的用户实体。 到目前为止,我能够validation基本规则(例如用户名和密码是非null /空格字符串)。 但是其中一条规则,我需要确保用户名是唯一的。 但是我需要访问数据库才能执行此操作,这意味着我必须将IUserRepository注入我的User实体中。 public class User { private readonly IUserRepository _userRepository; public User(IUserRepository repo) { _userRepository = repo; } public override void Validate() { //Basic validation code if (string.IsNullOrEmpty(Username)) throw new ValidationException(“Username can not be a null or whitespace characters”); if (string.IsNullOrEmpty(Password)) throw new ValidationException(“Password can not be a null or […]

使用注释和IValidatableObject进行递归validation

我试图使用注释和一些自定义代码validation嵌套对象(不是MVC senss中的模型)。 我发现以下post很有用 使用数据注释validation手动和对象图 正如在答案中所建议的,我在容器类中创建了一个额外的例程来validation嵌套对象。 这是我修改过的测试代码 public class Customer : IValidatableObject { public Customer() { Details = new CustomerDetails(); } [Required] [MaxLength(2)] public string Name { get; set; } public CustomerDetails Details { get; private set; } public IEnumerable Validate(ValidationContext validationContext) { var context = new ValidationContext(this.Details, validationContext.ServiceContainer, validationContext.Items); var results = new List(); Validator.TryValidateObject(this.Details, […]

MVC ICollection ValidationState始终设置为Skipped

作为ASP.NET Core MVC 1.0项目的一部分,我有一个带有ICollection属性的ViewModel。 我需要validation此集合包含一个或多个项目。 我的自定义validation属性未执行。 在我的实例中,它从multipart/form-data表单中保存多个文件附件。 我在ViewModel中使用自定义validation属性修饰了该属性: [RequiredCollection] public ICollection Attachments { get; set; } 下面是自定义属性类。 它只是检查集合不是null并且元素大于零: public class RequiredCollectionAttribute : ValidationAttribute { protected const string DefaultErrorMessageFormatString = “You must provide at least one.”; public RequiredCollectionAttribute() : base(DefaultErrorMessageFormatString) { } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var collection = (ICollection) value; return […]

如何使用IDataErrorInfo强制validation错误更新ViewModel中的View?

我有一个基于MVVM的窗口,有很多控件,我的Model实现了IDataErrorInfo 。 还有一个SaveCommand按钮,它通过分析Model.Error属性来执行validation。 仅当我更改特定控件的值时,或者当我使用PropertyChanged通知有关该属性的更改时,视图才会显示控件周围的默认红色边框。 即使我没有触摸控件,如何强制View显示所有validation错误? 我的所有validation绑定都包括ValidatesOnDataErrors=True, NotifyOnValidationError=True 。 我知道一个解决方案是有一个包含所有错误的聚合框,但我更愿意在每个控件的基础上显示错误。 我不想为ViewModel中的每个绑定属性触发Model.NotifyPropertyChanged 。 我使用的是WPF 4.0,而不是Silverlight,所以INotifyDataErrorInfo不起作用。

点击刷新时F#validate重复上一次PostBack(F5)

我有一个生成文件的webform,但当我点击产生回发的按钮生成文件一旦完成,如果我按下刷新(F5)页面重新提交回发并重新生成文件,有任何方法来validation它和向用户显示消息或只是没有! 谢谢 :)

Bools的数据注释

在下面我有三个不同的类别。 我将如何构建validation以确保每个类别至少选择一个布尔值? //残疾人 [Display(Name = “Learning Disabilities”)] public bool LD { get; set; } [Display(Name = “Developmental Disabilities”)] public bool DD { get; set; } [Display(Name = “AD/HD”)] public bool ADHD { get; set; } [Display(Name = “Autism”)] public bool Autism { get; set; } //年龄阶层 [Display(Name = “Child”)] public bool child { get; set; […]

用于输入validation的正则表达式白名单 – 重音不敏感

我希望能够将用户输入限制为有效字符的白名单,但我不想阻止来自其他文化的人注册。 到目前为止,我有这个: ^[a-zA-Z0-9èéêëàáâãäçìíîïòóôõöùúûü-_]*$ 它允许大多数法国口音,但拉丁字符集中的重音列表是IMMENSE! 我宁愿使用白名单而不是黑名单,以防我错过了什么。 注意 ,这将适用于C#,但我想使用正则表达式进行客户端validation,以确保双方的一致性。 当我将它保存到数据库时,我是HTML编码输入。 是否有更优雅的方式使正则表达式重音不敏感,但仍然具有足够的限制性来阻止XSS? 我不想疏远我的用户。 我希望能够有一些标点但不能打开自己的XSS攻击,例如,我希望有人输入他们的公司名称:如果有人在雅虎工作,他们应该能够注册。

如何validation类属性?

背景: 我有一个CSV文件,我需要准备好并validation每一行中的每个元素,并创建一个具有有效数据的类的集合。 即CSV文件看起来像: EmpID,FirstName,LastName,Salary 1,James,Help,100000 2,Jane,Scott,1000 3,Mary,Fraze,10000 类看起来像: public class Employees { public int EmpID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Salary { get; set; } public string ErrorReason { get; set; } } 以下是每个字段所需的validation: 的EmpID: 它是一个必填字段,因此不能为空或空 它应该只是一个整数 它应该不超过2位数 它应该存在于数据库中(查询该数据库并检查员工是否以此empid退出。 FirstName(LastName的相同validation): […]