asp.net core练手小项目(07) - 模型验证

本篇实现创建或修改 student 时,对录入的数据进行验证,并且在前端页面中,显示错误消息。比如,如果在电子邮箱字段输入了不正确的邮箱格式,提示如下:

为模型指定验证规则

为了模型验证,首先要为模型指定验证规则。比如对 student,增加如下的验证规则:


使用的都是 asp.net core 内置的特性。参考ASP.NET Core MVC 中的模型验证 | Microsoft Docs,常见的内置特性包括:

  • [Compare]:验证模型中的两个属性是否匹配。
  • [EmailAddress]:验证属性是否具有电子邮件格式。
  • [Range]:验证属性值是否位于指定范围内。
  • [RegularExpression]:验证 属性值是否与指定的正则表达式匹配。
  • [Required]:验证字段是否不为 null。 有关 [Required] 此属性的行为的详细信息,请参阅属性。
  • [StringLength]:验证字符串属性值是否不超过指定的长度限制。
  • [Url]:验证属性是否具有 URL 格式。

ErrorMessage 的作用是当没有通过验证规则时,给出的错误消息。视图和 controller 可以捕获和显示这些消息。

ModelState

定义了验证规则后,controller 可以通过 ModelState.IsValid 属性判断是否通过,从而做出不同的反应。比如 StudentController 的 Create Action 方法和 Edit action 方法:


视图中显示错误

在 Create.cshtml 文件和 Edit.cshtml 下面的代码的作用是模型验证不通过时的错误显示。

源码

源码托管在 gitee 上,https://gitee.com/stonewm/aspnetcore-studentmanagement,为了记录完整的编写过程,重要步骤提交 tag 以方便查看和对比。本次代码 tag 为 v0.07。可以通过 git checkout v0.07 查看对应代码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值