data-annotations 相关问题

ASP.NET MVC等框架使用Data Annotations来启用基于模型的验证方法,并在客户端和服务器端的整个应用程序中实施一致的验证。它们最初是在ASP.NET MVC 2中引入的。除了ASP.NET MVC之外,它们还可以与其他技术(如实体框架)一起使用,可以通过在属性上手动放置属性,也可以使用T4模板自动生成。

电子邮件数据注释在 ASP.Net Core 中不起作用

所以这是我的模型: [显示(姓名=“*电子邮件”)] [电子邮件地址] 公共字符串电子邮件{获取;放; } 和视图: 这是我的模特: [Display(Name = "*Email")] [EmailAddress] public string Email { get; set; } 还有景色: <div class="form-group"> <label asp-for="Email" class="control-label"></label> <input asp-for="Email" class="form-control" /> <span asp-validation-for="Email" class="text-danger"></span> </div> 虽然电子邮件验证大部分工作正常,但如果不存在“.”(点),则无法捕获。因此 test@gmailcom 被认为是有效的。无论如何要修复它吗? 您可以尝试使用RegularExpressionAttribute来替换EmailAddressAttribute。这是一个工作演示: 型号: [Display(Name = "*Email")] [RegularExpression(@"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$",ErrorMessage ="The Email field is not a valid e-mail address.")] public string Email { get; set; } 结果: 可以在这里找到更强大的示例: https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format 这是片段: public static bool IsValidEmail(string email) { if (string.IsNullOrWhiteSpace(email)) return false; try { // Normalize the domain email = Regex.Replace(email, @"(@)(.+)$", DomainMapper, RegexOptions.None, TimeSpan.FromMilliseconds(200)); // Examines the domain part of the email and normalizes it. string DomainMapper(Match match) { // Use IdnMapping class to convert Unicode domain names. var idn = new IdnMapping(); // Pull out and process domain name (throws ArgumentException on invalid) string domainName = idn.GetAscii(match.Groups[2].Value); return match.Groups[1].Value + domainName; } } catch (RegexMatchTimeoutException e) { return false; } catch (ArgumentException e) { return false; } try { return Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250)); } catch (RegexMatchTimeoutException) { return false; } }

回答 2 投票 0

即使应用了必需的属性,数据注释也无法按预期工作

我在.NET 6.0中有一个模型类并应用了数据注释。我有扩展类 ApiRequestValidation,它在检查请求正文中的 JSON 后返回验证结果。 使用系统。

回答 1 投票 0

如何使用 Pandas 注释列中的重复值

我有一个数据集,其中包含一个包含大量重复行的列。我的列类似于下表中的索引列: 指数 新列 2020年BAS 2020年BAS 2022CAD 2022CAD 2012BET

回答 1 投票 0

ASP.NET Core 8 Web API 数据验证忽略数据注释

我正在尝试在 ApiController 中进行自动数据验证,但是当用户发送不正确/丢失的数据时,会返回 JSON 反序列化失败错误消息,而不是自定义的

回答 1 投票 0

在 ASP.NET 中选择合适的数据注释语言

我正在尝试本地化数据注释属性的错误消息。我创建了两个 resx 文件: 数据注释本地化.resx > DataAnnotationsLocalization.Designer.cs 数据注释本地化...

回答 1 投票 0

在 ASP.NET MVC 中验证多个复选框

我的表单中有 4 个复选框,并希望用户在提交表单时至少选择其中一个复选框。 我正在使用 ExpressiveAnnotations.Attributes;当我们在项目的其他部分使用它时参考...

回答 1 投票 0

在 MVC 中验证多个复选框

我的表单中有 4 个复选框,并希望用户在提交表单时至少选择其中一个复选框。 我正在使用“ExpressiveAnnotations.Attributes;”当我们在 p 的其他部分使用它时参考...

回答 1 投票 0

用本体注释文本数据

我有一个植物生物体列表(文本),我想用本体来注释它们(植物本体、作物本体、食品本体等),我正在使用本体查找服务来进行注释...

回答 1 投票 0

编写 DataAnnotations 自定义验证器的多种方法

我编写了一个自定义 DataAnnotations 验证器(用于客户端和服务器): 公共类 CustomAttribute : ValidationAttribute, IClientModelValidator { /* ... */ } 然而,文档显示了替代方案...

回答 1 投票 0

StringLengthAttribute 不强制长度

我有一个带有 StringLength 属性的属性,但我可以为该属性分配任意长度的字符串。我在 VB.NET 4.7 Framework 中创建了以下测试程序: 导入 System.ComponentModel。

回答 1 投票 0

在 Minimal Api 中使用 DataAnnotation 模型验证

我正在将应用程序从 Asp.net 控制器移植到 Asp.net Minimal-Apis。当前项目正在使用基于模型的 DataAnnotations。控制器可以开箱即用地进行模型验证,但 MinApi 可以......

回答 1 投票 0

在 Asp.net Minimal Api 中使用 DataAnnotation 模型验证

我正在将应用程序从 Asp.net 控制器移植到 Asp.net Minimal-Apis。当前项目正在使用基于模型的 DataAnnotations。控制器可以开箱即用地进行模型验证,但 MinApi 可以......

回答 1 投票 0

允许属性为空或指定长度

我有以下定义。 [StringLength(4, MaximumLength = 4, ErrorMessage = "手机后 4 必须是 4 位数字。")] 公共字符串 MobileLast4 { 获取;放; } 我希望能够使用 null 或 if...

回答 2 投票 0

如何访问 MaxLengthAttribute 类以在验证期间获取字段的 LENGTH 值?

在 Blazor CRUD 组件的 handleSubmit 函数中,我必须提供基于 DataAnnotation MaxLength 属性的错误消息。我想展示一个“自定义”C# 呃...

回答 1 投票 0

如何在 ASP.NET Core 6 MVC 中添加默认数据注释验证错误消息的本地化?

这个想法是利用默认消息来快速开发应用程序和使代码更清晰,但我无法找到一种方法来做到这一点。 这就是我走了多远: // 程序.cs: 使用 ... var 构建...

回答 1 投票 0

如何避免 spring data JPA 插入特定字段:@Column(name="cn", insertable = false, updatetable=false) 不起作用

我有一个实体,其字段名为 cn,意思是创建者姓名。创建者名称来自另一个表。 该实体中的字段是creator_id。阅读文档后,我希望...

回答 1 投票 0

日期时间的 FluentValidation

我有以下代码行用于 PublishedDateTime 字段上的数据注释验证,但我想通过 FluentValidation API 进行验证 公共即时发布 { get;放; } [已过时(“EF-

回答 1 投票 0

有没有一种方法可以通过数据注释来验证一个日期属性大于或等于另一个日期属性?

我的 SchoolEvents 模型上有 StartDate 和 EndDate,我想知道是否有任何数据注释可以用来验证 StartDate 小于或等于 EndDate 并且...

回答 2 投票 0

.NET正则表达式数据注释属性不正确匹配

我可以找到大量有关 .NET 正则表达式的信息,但不是专门针对正则表达式属性的信息。据我所知,它的行为与普通的 .NET RegEx 不同。 我是...

回答 1 投票 0

用于创建红色边界框的数据注释工具

我工作的数据注释公司正在使用 MS-Paint 在图像中的对象周围制作红色边框。 问题是在 MS-

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.