Tag: validation

CustomValidationAttribute指定的方法未被调用

我正在使用System.ComponentModel.DataAnnotations.CustomValidationAttributevalidation我的一个POCO类,当我尝试对其进行unit testing时,它甚至没有调用validation方法。 public class Foo { [Required] public string SomethingRequired { get; set } [CustomValidation(typeof(Foo), “ValidateBar”)] public int? Bar { get; set; } public string Fark { get; set; } public static ValidationResult ValidateBar(int? v, ValidationContext context) { var foo = context.ObjectInstance as Foo; if(!v.HasValue && String.IsNullOrWhiteSpace(foo.Fark)) { return new ValidationResult(“Either Bar or Fark must […]

如何在mvc4 razor中显示validation消息

我是MVC Razor的新手,我想在文本框上实现validation消息。 这里我动态创建一些文本框,如下所示: 查看代码: foreach (var items in (IEnumerable)Model.UsersOfList) { @Html.TextBoxFor(m => m.LoginNameOfLoginInfoTab, new { @class = “textBox_LoginInfoAndPermission”, @value = (Model.LoginNameOfLoginInfoTab = items[“UserName”].ToString()), @id = (“txtUserLoginName” + Model.UsernameOfLoginInfoTab.Trim()) }) @Html.ValidationMessageFor(m => m.LoginNameOfLoginInfoTab, null, new { @class = “ErrorMessage” }) @Html.TextBoxFor(m => m.UsernameOfLoginInfoTab, new { @class = “textBox_LoginInfoAndPermission”, @value = (Model.UsernameOfLoginInfoTab = items[“FirstName”].ToString()), @id = (“txtUserName” […]

在ViewModel实体上使用DataAnnotation进行Prism IDataErrorInfovalidation

我正在使用Prism MVVM框架在WPF中实现数据validation。 我在ViewModel中使用干净的数据实体,这些实体被绑定到表示层。 我在基础ViewModel类中实现了IDataErrorInfo的通用实现,该类对我的Entity上的DataAnnotation属性运行validation(在本例中为User)。 问题是当绑定到实体时,WPF框架在实体上查找IDataErrorInfo而不是ViewModel,这是我希望这个逻辑存在的地方。 如果我用我的ViewModel中的属性包装我的实体,那么一切正常,但我不希望在ViewModel中妥协使用实体。 有没有办法告诉WPF在ViewModel中查找IDataErrorInfo而不是被绑定的子对象? 谢谢,迈克

int数据类型的服务器端validation

我做了自定义Validator属性 partial class DataTypeInt : ValidationAttribute { public DataTypeInt(string resourceName) { base.ErrorMessageResourceType = typeof(blueddPES.Resources.PES.Resource); base.ErrorMessageResourceName = resourceName; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { string number = value.ToString().Trim(); int val; bool result = int.TryParse(number,out val ); if (result) { return ValidationResult.Success; } else { return new ValidationResult(“”); } } } 但是当我在文本框中输入字符串而不是int值时,则value==null ,当我输入int值时,则value==entered value; […]

业务对象或实体应该自我validation吗?

Business Objects的validation是一个常见问题,但有一些解决方案可以解决这个问题。 其中一个解决方案是使用独立的NHibernate.Validator框架,这是一个基于属性的validation框架。 但我正面临着概念上的担忧。 像NH.Validator这样的属性validation器很棒,但只有在Session中的save-update-delete时才会执行validation。 所以我想知道业务对象是否不应该自我validation以保持自己的完整性和一致性?

C#Regular Expression来validation日期?

我正在尝试validation输入到文本框中的日期。 文本框上有一个输入掩码,强制输入xx / xx / xxxx。 我正在尝试使用正则表达式validation程序来强制输入正确的日期。 我根本不熟悉RegEx。 我的同事在互联网上找到了这个,但我无法真正说出它在做什么。 这看起来不错吗? 看起来过于复杂…… (^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))\x2F(((0[1-9])|(1[0-2]))|([1-9]))\x2F(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$) 有没有人知道一个不太复杂的表达,基本上做我需要的?

解析和validation手机号码的最佳做法

我想知道在发送文本之前解析和validation手机号码的最佳做法是什么。 我已经有了可行的代码,但我想找到更好的方法(我的上一个问题,这是我早期新年决议中编写质量更好的代码的一部分!)。 当用户输入表格上的号码时,我们非常宽容,他们可以输入“+44 123 4567890”,“00441234567890”,“0123456789”,“+ 44(0)123456789”,“012-345”等内容-6789“甚至”没有电话“。 但是,要发送文本格式必须是44xxxxxxxxxx(这仅适用于英国手机),因此我们需要解析并validation它才能发送。 下面是我现在的代码(C#,asp.net),如果有人对如何改进它有任何想法会很棒。 谢谢, Annelie private bool IsMobileNumberValid(string mobileNumber) { // parse the number _mobileNumber = ParsedMobileNumber(mobileNumber); // check if it’s the right length if (_mobileNumber.Length != 12) { return false; } // check if it contains non-numeric characters if(!Regex.IsMatch(_mobileNumber, @”^[-+]?[0-9]*\.?[0-9]+$”)) { return false; } return true; } private string […]

正式表达伊朗手机号码?

如何通过正则表达式测试用户手机号码。 伊朗手机有这样的数字系统: 091- — —- 093[1-9] — —- 一些示例前缀: 0913894—- 0937405—- 0935673—- 0912112—- 资料来源: http : //en.wikipedia.org/wiki/Telephone_numbers_in_Iran

使用ASP.NET MVC 4在运行时动态应用validation规则

我已经在WebForms工作了多年,但我对.NET的MVC很新。 我试图找出如何在运行时将动态validation规则应用于我的模型的成员。 出于这个问题的目的,这些是我正在使用的类的简化版本: public class Device { public int Id {get; set;} public ICollection Settings {get; set;} } public class Setting { public int Id {get; set;} public string Value {get; set;} public bool IsRequired {get; set;} public int MinLength {get; set;} public int MaxLength {get; set;} } 在我看来,我将使用每个编辑器遍历Settings集合并在运行时应用每个Setting实例中包含的validation规则,以实现在编译时使用模型上的DataAnnotations获得的相同客户端和服务器端validation。 在WebForms中,我只是将相应的Validator附加到相关字段,但我在MVC4中找不到类似的机制。 有没有办法实现这个目标?

FluentValidation:检查两个字段中的一个是否为空

我有这个模型 public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 我想创建一个validation,其中FirstName或LastName必须由用户填写。 我安装了FluentValidation并创建了一个customvalidator类 public class PersonValidator:AbstractValidator { public PersonValidator() { RuleFor((person=>person.FirstName)//don’t know how to check if one is empty } } 要检查一个字段我可以做RuleFor(person => person.FirstName).NotNull(); 但是我如何检查其中一个是否为空。 此外,一旦通过fluentValidation创建validation,是否有可能在客户端使用它来显示错误? EDIT1 protected void […]