问题标签 [validationattribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2433 浏览

asp.net-mvc-3 - 如何以编程方式打开/关闭数据注释验证属性

所以,我使用的是 ASP.NET MVC 3 和 Entity Framework 4.1(代码优先)。

我有这样的课:

范围验证正确触发。但是,例如,在某些情况下,我想更改 Age 属性的范围。或者甚至将其关闭。我怎么能在不改变我的模型类的情况下做到这一点?这有可能以编程方式进行吗?

0 投票
1 回答
735 浏览

asp.net-mvc-3 - 是否可以使用 MVC 不显眼的适配器在验证功能期间自定义 jquery 验证消息?

我有一个 MVC3 表单中的多个select列表框。用户可以option在此列表框中添加和删除自定义元素。但是我想验证列表框中没有 2 个选项包含相同的值。

我创建了一个实现 IClientValidatable 的自定义 ValidationAttribute。服务器和客户端验证都在工作。但是,我的 ErrorMessage 看起来像这样:

不幸的是,我只能将部分格式化的消息传递给客户端验证消息,我这样做是这样的:

验证在运行验证之前不会知道哪个选项值重复,因此我想在验证功能期间完成消息格式化。

但是,似乎只能在$.validator.unobtrusive.adapters.add()功能期间设置错误消息。

我尝试在验证期间设置元素的data-val-noduplicatestringvalues属性select,但错误消息仍然显示如下:

FieldName 有超过 1 个“{1}”项。

有没有办法在验证功能期间更改错误消息?

0 投票
3 回答
9883 浏览

asp.net-mvc - ASP.NET MVC ValidationAttribute 获取其他属性显示名称

我通过复制 ASP.NET MVC 3 CompareAttribute 创建了一个自定义的 CompareLessThan 验证属性,而不是检查相等性,而是检查一个属性是否小于另一个属性。如果存在客户端错误,则会向用户显示消息“{0} 必须小于 {1}”。

我的模型设置如下,显示属性引用资源文件。

那么自定义验证GetClientValidationRules方法和CompareAttribute中的方法一模一样

在这里,我们正在生成错误消息,如果出现问题,将向用户显示。我可以从用我的自定义 CompareLessThan 属性装饰的属性的资源文件中获取显示名称,但我的问题是如何获取我们正在比较的“其他”属性的显示名称?在 IsValid 方法中,我们有一个对 validationContext 的引用,我可以从中为“其他”属性生成一个 PropertyInfo 对象,并且我认为可以获取显示名称。但是,在 GetClientValidationRules 中我无权访问它。

我总是可以为另一个属性的显示名称传递另一个值,但我希望有一种方法可以派生它,因为我已经用数据注释指定了它。

有任何想法吗?

0 投票
1 回答
2464 浏览

silverlight - 自定义 ValidationAttribute 的 ValidationErrors 未正确显示

我创建了一个在服务器和客户端之间共享的 ValidationAttribute。为了让验证属性在数据助手类中被引用时正确生成给客户端,我必须非常具体地说明我是如何构建它的。

我遇到的问题是,由于某种原因,当我从自定义验证属性类返回 ValidationResult 时,它的处理方式与客户端 UI 上的其他验证属性不同。它没有显示错误,而是什么都不做。虽然它会正确验证对象,但它只是不显示失败的验证结果。

下面是我的一个自定义验证类的代码。

这就是我在服务器和客户端上的属性上方使用它的方式。

而且我尝试了几种不同的方法来设置绑定。

这些似乎都没有使它们绑定的表单也验证条目。我已经尝试在绑定到 TextBoxes、XamGrids 的值上使用此属性,并且这些值都没有像应有的那样正确验证。

这个问题似乎只出现在我尝试在服务器端使用 ValidationResult 时。如果我对视图模型中的值使用验证结果,那么它将正确验证。不过,我需要找到一种方法来从生成的代码中正确验证这一点。

任何想法将不胜感激。

0 投票
5 回答
3351 浏览

c# - 如何验证 Guid 数据类型?

有没有办法验证 GUID 数据类型?

我正在使用验证属性。 http://msdn.microsoft.com/en-us/library/ee707335%28v=vs.91%29.aspx

0 投票
0 回答
465 浏览

asp.net-mvc-3 - ASP .NET MVC 3 Validation unobtrusive - 验证规则的评估顺序

我创建了一个自定义 ValidationAttribute“RequiredIf”,以根据另一个字段确定一个字段是否为空。我已经创建了适配器并添加了方法。

这是示例:http ://anthonyvscode.com/2011/07/14/mvc-3-requiredif-validator-for-multiple-values/

问题是该属性具有比 requiredif 更多的元数据,并且该属性是 Int32,因为如果我的表单在客户端上进行了验证,则首先评估该值是否为数字,然后评估该值是否为空。

我该如何解决?如果、数字和范围,则需要正确的规则顺序。

0 投票
1 回答
1729 浏览

asp.net-mvc-3 - 在 MVC3 中获取自定义验证属性仅在提交时触发,而不是在输入失去焦点时触发

我希望在 MVC 3 中获得一些自定义验证属性,仅在我提交时触发,而不是在输入失去焦点时触发。

这是我的自定义验证属性。

这是用于客户端验证的 .js 文件

这是我的模型

这是我的观点。

0 投票
0 回答
210 浏览

regex - RegularExpressionAttribute 无法验证正确的数据

我有一个正则表达式,当我尝试它时效果很好:

但是当我将它用作验证过滤器时:

它适用于客户端,但不适用于服务器端。例如,当我传递“通用”这个词时,ModelState包含一个关于用该正则表达式验证器标记的字段的错误。

此属性是应用于该字段的唯一验证规则,可能是什么问题?

干杯。

0 投票
1 回答
1590 浏览

asp.net-mvc-3 - MVC3 简单的自定义验证

简单的自定义验证,

我的模型和自定义验证:

(请参阅上面的内联评论)

看法:

0 投票
2 回答
512 浏览

asp.net-mvc-3 - 从自定义 ValidationAttribute 中的 ModelClientValidationRequiredIfRule 方法获取复杂类型的全名

我正在使用The Complete Guide To Validation In ASP.NET MVC 3中的示例来创建RequiredIf验证属性(它位于“更复杂的自定义验证器”标题下的页面下方约 1/3 )。除了一种情况外,这一切都很好,那就是如果我需要针对复杂类型进行验证。例如,我有以下模型:

问题是,当 StreetAddress 属性的属性验证被渲染时,它会被data-val-requiredif-other="DontUse". 不幸的是,由于地址是主模型的子类型,因此需要使用HomeAddress_DontUse的名称进行修饰,而不仅仅是DontUse

奇怪的是,验证对于服务器端验证工作得很好,但是客户端不显眼的验证失败并出现 JS 错误,因为 JS 无法找到名称仅为“DontUse”的对象。

因此,我需要找到一种方法来更改 ModelClientValidationRequiredIfRule 方法,以知道它正在验证的属性是父类型的子类型,如果是这样,请将其ParentType_添加到“otherProperty”字段(例如 otherProperty 变为HomeAddress_DontUse.

我曾尝试typeof(MemberAddressModel)作为属性的参数传入,但即使在调试属性创建时,我似乎也无法从该类型中找到对 HomeAddress 或 WorkAddress 的父类型的任何引用。