问题标签 [data-annotations]

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 回答
1456 浏览

asp.net-mvc-2 - ASP.NET MVC 2 动态生成模型中的数据注释

我正在创建一个 asp.net mvc 2 应用程序,根据用户输入动态生成我的视图模型。简单地说,用户可以选择他想在他的视图中看到哪些字段。

由于模板化助手严重依赖模型属性和属性(数据注释),我需要在运行时以某种方式将属性添加到视图模型。不用说,这不是一项简单的任务。

那么,你们建议我在这种情况下做什么?我无法静态添加属性,所以我应该继续尝试动态添加它们,即使工作量很大,还是应该尝试使用不同的方法?

提前致谢!

费利佩

0 投票
1 回答
381 浏览

c# - ASP.NET ViewModel 替代方案

在 Django/Python 中,如果我有以下模型

我可以创建如下表单(视图模型)

然后我将它传递给视图/模板,它会忽略 id/creation_time

在这种情况下,不会对 id 和 creation_time 运行验证。我稍后会在我的代码中设置它们并保存它。

ASP.NET MVC 中是否有某种方法(使用数据注释或其他任何方法)来排除这样的字段(不使用单独的视图模型)?我正在使用 ADO.NET 实体。

0 投票
1 回答
364 浏览

c# - Linq to Entity Model's DataAnnotations don't reset

In my Asp.net MVC app, I have a custom validator class V and an (ADO.NET Entities) entity model E.

I applied validator V to a custom property P in entity model E. Validator V sets the error message in IsValid.

However, it seems as though an instance of entity model E keeps getting reused over and over again (from an Asp.net MVC view) and every time the validation is performed on E the same validator instance gets used.

Because the validator writes to the ErrorMessage property and you can't write to ErrorMessage property more than once, every validation performed after the initial one causes a crash.

Does anyone know how to solve this?

0 投票
5 回答
40989 浏览

validation - 使用数据注释的依赖属性的自定义模型验证

从现在开始,我使用了出色的FluentValidation 库来验证我的模型类。在 Web 应用程序中,我也将它与jquery.validate插件一起使用来执行客户端验证。一个缺点是大部分验证逻辑在客户端重复,不再集中在一个地方。

出于这个原因,我正在寻找替代方案。有很多例子展示使用数据注释来执行模型验证。它看起来很有希望。我找不到的一件事是如何验证依赖于另一个属性值的属性。

让我们以以下模型为例:

我想确保EndDate大于StartDate。我可以编写一个扩展ValidationAttribute的自定义验证属性,以执行自定义验证逻辑。不幸的是,我找不到获取模型实例的方法:

我发现CustomValidationAttribute似乎可以完成这项工作,因为它具有ValidationContext包含正在验证的对象实例的此属性。不幸的是,此属性仅在 .NET 4.0 中添加。所以我的问题是:我可以在 .NET 3.5 SP1 中实现相同的功能吗?


更新:

FluentValidation似乎已经支持ASP.NET MVC 2 中的客户端验证和元数据。

不过,如果可以使用数据注释来验证依赖属性,还是很高兴知道的。

0 投票
1 回答
2008 浏览

asp.net - 在模型绑定器启动之前使用数据注释和 Linq-to-SQL 验证 MVC 2 表单(使用 DateTime)

我正在使用带有数据注释的 linq to SQL 和 MVC2,并且在验证某些类型时遇到了一些问题。

例如:

这是一个整数,我正在验证从表单中获取一个正数。

现在的问题是,当我在输入中写入文本时,我看不到这个错误,但我从模型绑定器中得到错误消息,说“值'明天'对 Geplande sessies 无效。”

控制器中的代码:

我想要的是能够在模型绑定器之前运行数据注释,但这听起来几乎是不可能的。我真正想要的是我自己编写的错误消息出现在屏幕上。

我对 DateTime 有同样的问题,我希望用户以特定的形式 'dd/MM/yyyy' 编写它,并且我有一个正则表达式。但同样,当数据注释完成他们的工作时,我得到的只是一个 DateTime 对象,而不是原始字符串。因此,如果输入不是日期,则正则表达式甚至不会运行,因为数据注释只是得到一个空值,因为模型绑定器无法使其成为 DateTime。

有谁知道如何使这项工作?

0 投票
3 回答
1483 浏览

asp.net-mvc - 第一次失败后有什么方法可以停止 DataAnnotation 验证?

在我的 ViewModels 中,我使用多个 DataAnnotations 来验证表单数据,每个字段通常有 2-3 个注释。

例如,电子邮件地址的字段可能如下所示:

现在,如果有人要提交表单,这两个错误都会显示在验证摘要中。是否有任何简单的方法来指定运行验证注释的顺序,这样如果必需的验证失败,电子邮件验证就不会运行?

如果这不可能,通常如何处理?我应该为具有多个注释的任何字段创建自定义验证器吗?这是否是使用注释的正确方法,其中一个处理多种类型的验证?

(我也知道我可以将Required 注释组合到自定义电子邮件注释中,但这只是一个示例)。

0 投票
1 回答
107 浏览

validation - mvc 2.0 验证

我正在使用 DataAnnotations 验证,它工作得很好但是当我验证空文本框字段时出现错误

值“”无效

如何自定义此错误?

ps 错误仅在客户端脚本关闭时显示

0 投票
2 回答
743 浏览

asp.net-mvc-2 - 从生成的类生成数据注释

我有一个 linq to sql 对象或必要的实体框架对象。

我想为他们做 MVC 2 数据注释,但我总是懒惰。

有没有办法自动生成数据注释 a-la

这样我就不必自己做这一切了吗?

0 投票
3 回答
4438 浏览

asp.net - 是否可以对具有强类型资源的 LabelFor、ValidationMessageFor、EditorFor 使用数据注释?

我想在我的 ASP.NET MVC 应用程序中使用 DataAnnotations。我有强类型资源类,想在我的视图模型中定义:

CTRes是我的资源,自动生成的类。不允许使用上述定义。还有其他解决方案吗?

0 投票
1 回答
28390 浏览

c# - 如何将 DataAnnotations ErrorMessageResourceName 与自定义资源解决方案一起使用

我正在用 C# 构建一个 MVC Web 应用程序。由于该站点将是多语言的,因此我实现了自己的 ResourceManager。此类负责根据当前线程文化从数据库/缓存中获取所需的资源字符串,并且到目前为止工作正常。

我的问题是,我想使用我的自定义 ResourceManager 解决方案来获取验证错误消息,例如在属性上使用必需属性。这可以做到吗?