Tag: validation

自定义StringLengthvalidation属性的客户端validation

我有以下自定义validation属性,它派生自StringLengthAttribute: public class StringLengthLocalizedAttribute : StringLengthAttribute { public StringLengthLocalizedAttribute(int maximumLength) : base(maximumLength) { var translator = DependencyResolver.Current.GetService<ITranslator(); var translatedValue = translator.Translate("MaxLengthTranslationKey", ErrorMessage); ErrorMessage = translatedValue.Replace("{MaxLength}", maximumLength.ToString()); } } 此自定义属性的唯一用途是本地化ErrorMessage。 问题是,当我在我的模型中使用它时,它不会生成任何客户端validation,但标准的StringLength属性会生成。 我没有看到我的属性如何以任何方式有所不同 – 因为它源自StringLength属性我不应该实现任何其他function来使客户端validation工作?

ac#winforms应用程序中的电子邮件validation

您好我如何在c#winforms中validation电子邮件?

提交更改后,DataGridView行仍然是脏的

在我提交对数据库的更改后, DataGridView.IsCurrentRowDirty仍然为true 。 我想将其设置为false因此当它失去焦点时它不会触发RowValidating 。 我有一个绑定到BindingList的DataGridView 。 我处理CellEndEdit事件并保存对数据库的更改。 保存这些更改后,我希望将DataGridView.IsCurrentRowDirty设置为true ,因为该行中的所有单元格都是最新的; 但是,它设置为false 。 这会给我带来问题,因为当行失去焦点时会触发RowValidating ,我会处理并validation所有三个单元格。所以即使所有单元格都有效且没有一个是脏的,它仍然会validation它们。 那是浪费。 这是我的一个例子: void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { // Ignore cell if it’s not dirty if (dataGridView.isCurrentCellDirty) return; // Validate current cell. } void dataGridView_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { // Ignore Row if it’s not dirty if (!dataGridView.IsCurrentRowDirty) return; // Validate […]

validation我的钱

我在validation资金投入方面遇到了一些麻烦。 我已经使用了其他问题的一些指针来编写更好的代码。 以下是我用来validation输入是否是金钱的内容。 static void Main(string[] args) { string myTest1 = “$1,234.56”; string myTest2 = “$1.00”; string myTest3 = “$1000.01”; string myTest4 = “$1,234,567.89”; myIsMaybeMoneyValidator Miimv = new myIsMaybeMoneyValidator(); bool myResult1 = Miimv.isMaybeMoney(myTest1); bool myResult2 = Miimv.isMaybeMoney(myTest2); bool myResult3 = Miimv.isMaybeMoney(myTest3); bool myResult4 = Miimv.isMaybeMoney(myTest4); } public bool isMaybeMoney(object theirMaybeMoney) { string myMaybeMoney = theirMaybeMoney.ToString(); […]

使用RegularExpressionValidator进行文件上传不适用于仅使用Firefox的IE

我有一个带有RegularExpressionValidator的FileUpload,其中包含以下validation表达式: ^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.gif|.jpg|.JPG|.JPEG|.GIF|.jpeg|.png|.bmp|.3dm|.3dmf|.ai|.drw|.dxf|.esp|.mng|.png|.ps|.psp|.svg|.tiff)$ 这样我确保用户只上传图像。 但由于某种原因,当我使用Firefox时,它不起作用。 为什么这样,我该如何解决这个问题呢?

Fluentvalidation – 将参数传递给集合validation器

我在ASP.NET MVC应用程序中使用流畅的validation,我遇到了问题。 这是我的规则: RuleFor(x => x.SimpleList) .SetCollectionValidator(new SimpleListValidator()) .When(x => x.Type == SimpleEnum.SpecificType); 我想将x.Type param传递给SimpleListValidator,我该怎么做? 某种延伸方法? 它应该看起来像: RuleFor(x => x.SimpleList) .SetCollectionValidator(new SimpleListValidator(x => x.Type)) .When(x => x.Type == SimpleEnum.SpecificType);

流畅的validation和库

在前几天寻找完全不同的东西时,我偶然发现了两个用于在.NET中进行Fluentvalidation的库。 这个概念看起来很有趣,因为到目前为止,我正在使用通常的条件和分支语句(if,else,case等)进行validation。 特别是,它可以相对容易地链接一些条件,这些条件可能导致某些情况下复杂条件的较短代码,并为同一对象中的每个违规嵌入若干错误消息。 也就是说,是不是它也让代码看起来比C#通常更冗长,有点像T-SQL有时……但是这不会导致代码具有不一致的外观和感觉? 简而言之,您如何看待Fluentvalidation,如果您喜欢它,您发现哪个库最适合它? 到目前为止,我已经看过http://tnvalidate.codeplex.com/和http://fluentvalidation.codeplex.com/ ,乍一看似乎或多或少等同…… 谢谢。

CustomValidation属性似乎不起作用

我在Silverlight 4应用程序中有一个简单的测试页面,我正在尝试获取自定义validation规则。 我有一个TextBox和一个Button,我在TextBlock中显示validation结果。 我的视图模型有一个Name属性,它绑定了TextBox的Text属性。 我在Name属性上有两个validation属性, [Required]和[CustomValidation] 。 当我点击提交按钮时,必需的validation器正确触发,但我的自定义validation器的validation方法内的断点永远不会被命中。 我不明白为什么会这样,因为我认为我非常仔细地遵循了MS的例子: http : //msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute(v = vs.95)的.aspx 以下是视图模型的代码: using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using GalaSoft.MvvmLight.Command; namespace MyProject { // custom validation class public class StartsCapitalValidator { public static ValidationResult IsValid(string value) { // this code never gets hit if (value.Length > 0) { var valid […]

如何使自定义控件可validation?

我有一个基于Panel的自定义控件。 它只是一个带有3个DropDownLists的简单面板。 如果我将CompareValidator添加到我的WebForm并将ControlToValidate属性设置为我的自定义控件的ID,我会收到以下错误: Control ‘{0}’ referenced by the ControlToValidate property of ‘{1}’ cannot be validated. 我理解为什么,CompareValidator无法对Panel合理的validation。 那么我需要添加到自定义控件中以使validation器能够validation它? 我尝试向我的Panel添加一个Text属性,它返回3个DropDownLists的Text属性的组合。 徒劳无功。 我已经尝试寻找可validation控件( TextBox )实现的某些接口( ITextControl )并将它们添加到我的自定义控件中。 徒劳无功。 如何基于Panel进行自定义控件,可以通过常规的.netvalidation器进行validation? (RequiredFieldValidator,CompareValidator等)

ModelState无效时保留下拉信息

我的DropDownLists存在一些问题,因为当我发布信息并且我的模型无效时,它会回到页面“空”,触发与此问题完全相同的错误。 我已经使用了那里提出的解决方案,它解决了我的问题。 无论如何,我想避免每当我的ModelState无效时查询数据库,我就采用这种方法。 我想知道它是否有效或者现在是否有更好的方法,考虑到我没有使用MVC来代替MVC2(这是MVC版本),我现在正在使用MVC 5,也许他们添加了一些新的东西来解决这个。 我所做的是在我的模型无效时使用TempData来保存信息。 public class ViewModel { [DisplayName(“Project”)] public int ProjectID { get; set; } public List Projects { get; set; } //Other fields } 现在我的Create()动作(填充项目) [HttpGet] public ActionResult Create() { ViewModel vmodel = new ViewModel(); vmodel.Projects = db.GetProjects(User.Identity.Name).Select(x => new SelectListItem { Text = x.Description, Value = x.Id }).ToList(); TempData[“Projects”] = […]