VSCode创建连接mysql的ASP.NET Core项目(续2:增加字段验证功能)

  项目已经具备了增、删、改、查功能,但是在新建和修改页面中并没有对特定字段进行验证,例如必填字段、数值必须在指定范围内、字符串满足特定要求等类似规则。ASP.NET Core的System.ComponentModel.DataAnnotations 命名空间中提供了一组属性特性,用于设置对象类中属性的验证方式,详细的特性清单请参照参考文献5,本文中仅对常用的属性特性进行说明,并应用在项目中。
  所有属性验证特性都继承自ValidationAttribute类,该类中的属性ErrorMessage用于指定验证失败时的错误提示信息,如果不设置的话则使用默认的提示信息,如下面列表中的RequiredAttribute所示。

  • RequiredAttribute:设置属性为必填字段,如果没有设置提示消息的话,则如下图所示,而设置了错误提示消息的截图如下。测试过程中,该错误提示是在点了提交按钮后才出现的;
 	[Display(Name = "名称")]
   	[StringLength(60, MinimumLength = 3)]
	[Required(ErrorMessage="名称不能为空")]
	public string Title { get; set; }

在这里插入图片描述在这里插入图片描述

  • RangeAttribute:可以设置数值、日期等数据字段的取值范围。测试过程中,值发生变化后,如果不满足验证条件,则会立即显示错误信息;
	[Range(0, 1, ErrorMessage = "好评率的值只能在0与1之间")]
    [Display(Name = "好评率")]
    public string Rating { get; set; }

    [Display(Name = "发布时间")]
    [DataType(DataType.Date)]
    [Range(typeof(DateTime), "1/1/1900", "1/1/2021",
    ErrorMessage = "发布之间必须在1900年至2021年之间")]
    public DateTime ReleaseDate { get; set; }

在这里插入图片描述在这里插入图片描述

  • RegularExpressionAttribute:属性的值必须符合设置的正则表达式;

  • EmailAddressAttribute:属性的值必须是邮件地址。用属性字段进行测试,如下图所示,只有输入的内容包含@,并且其后有内容是才不会出现错误提示。错误提示是在输入内容过程中出现的;
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • StringLengthAttribute:设置字符串的长度范围。测试过程中输入的内容达到了最大长度后,就无法在输入更多的内容;

   [StringLength(10, ErrorMessage = "输入的内容长度必须在3到10之间", MinimumLength = 3)]
   [Display(Name = "类型")]
   public string Genre { get; set; }

在这里插入图片描述
  上述属性只是本项目中用来测试的属性,System.ComponentModel.DataAnnotations命名空间中包含有几十种验证特性,可以根据程序需要进行配置。
  在新建页面和编辑页面的cshtml页面文件中,为了显示属性的错误提示,为每个属性都配置了相应的span标签,同时应用验证消息标记帮助程序(asp-validation-for)指定要验证的属性名称。具体的代码如下所示。关于验证消息标记帮助程序的详细介绍请见参考文献2.
在这里插入图片描述
  通过设置属性的验证特性,同时在页面中使用验证消息标记帮助程序管理字段要验证的属性,可以在编辑过程中自动验证字段内容并显示错误提示信息,但是用户体验一般,例如有字数限制的字段没有提示还能输入多少字、所有的错误消息都同时显示(之前翻译的文章中讨论过)等等。估计还是才入门的原因,还没有接触到提高用户体验的功能或设置,后续还会继续根据微软的教程(参考文献1)深入学习ASP.NET Core。

参考文献:
[1]https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/validation?view=aspnetcore-5.0&tabs=visual-studio-code
[2]https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-5.0#the-validation-tag-helpers
[3]https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-6
[4]https://docs.microsoft.com/zh-cn/dotnet/api/system.componentmodel.dataannotations?view=net-5.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值