本篇实现创建或修改 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
查看对应代码。