问题标签 [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 投票
1 回答
788 浏览

asp.net-mvc-3 - ASP.NET MVC 3 IClientValidatable 属性 - 清除参数缓存

我正在使用 ASP.NET MVC 3。我添加了自己的自定义验证属性:

注意它是如何实现IClientValidatable的。这parameters1会将设置作为 HTML 5 数据属性呈现到页面上的字段中。

我遇到的问题是设置的值可以更改,但每次更改时它仍然会在数据属性中呈现旧值。我猜这是缓存在某个地方。反正有没有删除缓存?

我会很感激帮助。谢谢

0 投票
3 回答
74832 浏览

c# - 将我的属性值与模型类中另一个属性的值进行比较的自定义验证属性

我想创建一个自定义验证属性,我想在其中将我的属性值与模型类中另一个属性的值进行比较。例如,我在我的模型类中有:

我想创建一个自定义属性来像这样使用它:

我如何到那里?

0 投票
2 回答
1022 浏览

asp.net-mvc - 使用资源存储的字符串值对提供 DataAnnotations.ValidationAttribute 错误消息

ValidationAttributes不访问存储在使用内置资源生成器生成的资源文件ErrorMessages中的值对。(添加新项目 - 资源文件).resxVS2010

我只是添加了一个名为 的文件夹Resources,然后添加了一个新文件夹并将其命名Resources FileErrorResources,在资源编辑器中我添加了一个值对StringLengthError- Too Long**。

然后在我的 DataAnnotation.ValidationAttribute 中我写道:

我添加了一个using声明以包含ErrorResources.

但是当我运行它时,ValidationAttribute StringLength 是完全无效的。

如果我在没有 ErrorResources 的情况下使用它,如:

验证属性恢复生机。

我尝试访问ErrorResources代码其他部分中的值对,它可以工作。我只是无法让我的 ValidationAttributes 使用 ErrorResources 资源。

0 投票
0 回答
230 浏览

asp.net-mvc-2 - ASP .NET MVC 中的跨表验证

我正在使用 DataAnnotations 和 Validation Attributes 执行验证。我正在使用 ADO NET 实体模型、域服务、RIA 服务、Silverlight,并且我的项目有一个在 ASP .NET 中的服务器端。

我想执行跨表验证,如何从 CustomValidation 方法访问实体表。

让我们用一个例子来解释。

假设我想在我的数据中避免两个同名的公司。

我正在编辑这个问题,因为我不知道如何回复添加的评论。 这不是我真正需要的,我只是想从位于我的应用程序服务器端的自定义验证方法中访问数据。)

我装饰:

然后我的 CustomValidatorType 将是:

先感谢您

我最诚挚的问候

拉斐尔

0 投票
2 回答
1196 浏览

dependency-injection - ValidationAttribute 的 Autofac 和 DI

我有以下验证属性类:

为了测试,我尝试使用 Autofac 作为我的 IOC 并使用属性注入。我已经按如下方式设置了测试:

在测试期间,我的存储库没有被解析。Autofac 新手,希望有人能指出我正确的方向。

0 投票
1 回答
251 浏览

asp.net - 如何在asp.net mvc的动态虚拟视图中使用模型验证/数据注释

我发现了一些关于如何使用自定义虚拟路径提供程序创建动态虚拟视图的帖子。这是帖子

但我想知道如何在该虚拟视图中实现数据注释。

或者在虚拟视图上进行验证的最佳模式是什么?

编辑1:实际上,我的问题是不完整的。我想做一些类似 CMS 的事情。视图将是动态的,其中的内容也是如此。但是他们会调用相同的 ViewController 函数,处理验证的最佳方法是什么?是否可以根据动态内容生成数据注释?

谢谢。

0 投票
2 回答
2948 浏览

asp.net-mvc - 防止在模型中继承验证属性

我正在使用其他自定义联系人模型类继承的基本联系人模型。

基本联系人模型使用验证属性来标记需要的属性,但在某些情况下我想覆盖或停止它。这有可能吗?

我试图使用一个新的验证属性NotRequired来返回 true,但似乎属性只是被堆叠起来,所以Required & NotRequired 正在运行并且验证失败。

在寻找解决方案(我找不到)时,我发现一些不相关的属性具有“继承”属性,但我在System.ComponentModel.DataAnnotations的本机验证属性中没有看到这一点。

这是一个失败的原因吗?我是否需要推出自己的支持禁用继承的版本?非常感谢任何帮助。

0 投票
1 回答
231 浏览

asp.net-mvc-3 - 不了解编写自己的验证属性的机制

我之前写过一个属性,但是我之前没有写过验证属性。我对这一切如何协同工作感到非常困惑。我已经阅读了大部分关于如何完成此任务的在线教程。但我还有几个问题需要思考。

请记住,我正在尝试编写一个 requiredIf 属性,该属性仅在设置了某个 Jquery 变量时才调用远程函数...顺便说一下,这是一个从视图状态中提取的变量...我想我可以做那部分我的视图模型。但我离题了

1) C# 代码有点混乱。我知道我的属性应该分别扩展 ValidationAttribute、IClientValidatable 类和接口。但是我对每个覆盖的方法应该做什么有点困惑?我正在尝试编写 requiredIf,覆盖这些方法如何帮助我实现这一目标?

2)如果变量不存在,我根本不希望远程函数尝试验证该字段。我不想在我的表单上弹出任何消息。很多教程似乎都围绕着这一点。

3)我很困惑我需要用 jquery 做什么才能将这个函数添加到视图中......我需要向 JQuery 添加什么才能让这个东西工作......这似乎有很多额外的编码当我可以简单地键入一个 jquery 函数,该函数使用相同或更少的编码完成相同的事情时......我知道它还添加了服务器端验证,这很好。但是还是...

这是我在这个等式的 jquery 方面所拥有的......

这是我的属性(基本上是从所需的教程中复制出来的...

更新:我所拥有的根本不起作用

这是我的模型中的属性如何使用上述属性进行注释的

在我看来,我试图在此验证上键入的值是这样设置的......

我像这样将它嵌入到我的页面中......

我无法让我的表单提交......那个说他刚刚尝试过并让它工作的人,你能发布代码吗?

0 投票
2 回答
10678 浏览

c# - 复杂模型/子模型验证 (MVC) 的最佳方法

问题

我知道在 MVC 中有很多方法可以进行模型验证,并且有很多关于这个主题的文档。但是,我不太确定验证模型属性的最佳方法是相同类型“子模型”

请记住以下几点

  • 我仍然想从TryUpdateModel/TryValidateModel方法中获利
  • 这些“子模型”中的每一个都有强类型视图
  • 有一个用于MainModel呈现整体显示视图的类的强类型视图

这可能听起来有点混乱,但我会抛出一些代码来澄清。以以下类为例:

主要型号:

一些子模型:

主模型控制器:

我相信这段代码到目前为止都是有意义的(如果不是这样,请纠正我)因为TryValidateModel()正在验证一个没有ValidationAttribute.

问题出在哪里,哪里是最好的地方,或者什么是最好和最优雅的方式来对不同的验证约束Prop1同时Prop2仍然利用TryValidateModel()而不是用条件语句填充 Edit 方法和ModelState.AddModelError()

通常你可以在SomeSubModel类中有验证属性,但在这种情况下它不起作用,因为每个属性都有不同的约束。

其他选项是MainModel类中可能有自定义验证属性,但在这种情况下它也不起作用,因为SomeSubModel对象直接传递给视图并且在验证时没有对其MainModel对象的引用。

我能想到的唯一剩下的选择是每个属性的 ValidationModel,但我并不是最好的方法。

解决方案

这是我根据@MrMindor 的回答实施的解决方案。

基础 ValidationModel 类:

Prop1 的验证模型

Prop2 的验证模型

行动

0 投票
2 回答
1116 浏览

c# - 日期时间的 MVC3 ValidationAttribute?在 IsValid(...) 中返回 DateTime.Max

我正在尝试为 DateTime 编写自定义 ValidationAttribute?

但是,当它达到IsValid(object value)该值时DateTime.Max

我在代码中看到的任何内容都没有设置此值,但这意味着我正在努力验证它。

我想要的规则是“Null or After Today”——这意味着如果有 Null 值,那很好,但如果有值,那么我想验证。