向 Movie 模型添加了验证逻辑。 每当用户创建或编辑电影时,都会强制执行验证规则。

1.打开Movie.cs文件。DataAnnotations命名空间提供了一组内置的验证属性,这些属性以声明方式应用于类或属性。
 DataAnnotations还包含格式化属性,如格式化DataType帮助,不提供任何验证。

Movie类利用内置的Required,StringLength,RegularExpression,和Range验证特性。

public class Movie
{
public int Id { get; set; }

[StringLength(60, MinimumLength = 3)]
[Required]
public string Title { get; set; }

[Display(Name = "Release Date")]
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }

[Range(1, 100)]
[DataType(DataType.Currency)]
[Column(TypeName = "decimal(18, 2)")]
public decimal Price { get; set; }

[RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$")]
[Required]
[StringLength(30)]
public string Genre { get; set; }

[RegularExpression(@"^[A-Z]+[a-zA-Z0-9""'\s-]*$")]
[StringLength(5)]
[Required]
public string Rating { get; set; }
}

验证属性指定要对其应用的模型属性强制执行的行为:

在Required和MinimumLength属性指示某个属性必须有一个值; 但没有什么能阻止用户输入空格来满足此验证。

该RegularExpression属性用于限制可以输入的字符。在前面的代码中,“类型”:

必须只使用字母。
第一个字母必须是大写的。不允许使用空格,数字和特殊字符。
该RegularExpression“等级”:

要求第一个字符是大写字母。
允许后续空格中的特殊字符和数字。“PG-13”对于评级有效,但对于“类型”则失败。
该Range属性将值约束在指定范围内。

该StringLength属性允许您设置字符串属性的最大长度,以及可选的最小长度。

值类型(如decimal,int,float,DateTime)的内在需要和不需要的[Required]属性。

ASP.NET Core自动执行验证规则有助于使您的应用程序更加强大。它还确保您不会忘记验证某些内容并无意中将错误数据放入数据库中。

4.将验证添加到 ASP.NET Core Razor 页面的更多相关文章

  1. ASP.NET Core Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站: ...

  2. ASP.NET Core - Razor 页面简介

    简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...

  3. ASP.NET Core - Razor 页面介绍

    简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...

  4. ASP.NET Core Razor 页面使用指南

    ASP.NET Core Razor 页面作为 ASP.NET Core 2.0的一部分发布,它是基于页面的全新的Web开发框架.如果您想学习如何使用 ASP.NET Core Razor 页面,可以 ...

  5. Asp.Net Core Razor页面中使用echarts展示图形

    Asp.Net Core Razor页面中使用echarts展示图形 要在Razor页面中使用echarts显示图形,主要问题点在于如何将数据传递给js文件. 1,下载安装echarts库文件 首先引 ...

  6. ASP.NET Core Razor页面 vs MVC

    作为.NET Core 2.0发行版的一部分,还有一些ASP.NET的更新.其中之一是添加了一个新的Web框架来创建"页面",而不需要复杂的ASP.NET MVC.新的Razor页 ...

  7. Asp.net core Razor 页面

    创建asp.net core 空项目->MyWeb 修改Startup.cs启动文件添加Razor页面支持: public void ConfigureServices(IServiceColl ...

  8. ASP.Net Core Razor 页面路由

    在服务器端 Web 应用程序框架中,其中非常重要的设计是开发人员如何将URL与服务器上的资源进行匹配,以便正确的处理请求.最简单的方法是将 URL 映射到磁盘上的物理文件,在 Razor 页面框架中, ...

  9. 学习ASP.NET Core Razor 编程系列二——添加一个实体

    在Razor页面应用程序中添加一个实体 在本篇文章中,学习添加用于管理数据库中的书籍的实体类.通过实体框架(EF Core)使用这些类来处理数据库.EF Core是一个对象关系映射(ORM)框架,它简 ...

随机推荐

  1. sourceforge文件下载过慢

    sourceforge文件下载过慢,可以用下面网址镜像下载, http://sourceforge.mirrorservice.org 按搜索到的项目的英文字母依次查询,如http://sourcef ...

  2. plsql tables 表存在,但是看不到所有的表信息

      1.情景展示 tables目录存在,但是看不到该数据库下的表信息. 2.解决方案 对比同事的发现,原来是选错用户了. 将用户切换为当前用户就行了,不知道什么时候搞成所有用户了. 写在最后 哪位大佬 ...

  3. Junit TDD

    参考链接:https://www.w3cschool.cn/junit/ 什么是 JUnit? JUnit 是一个 Java 编程语言的单元测试框架.JUnit 在测试驱动的开发方面有很重要的发展,是 ...

  4. ethtool 强制设置网卡运行模式为100M

    ethtool -s eth0 autoneg off speed 100 duplex full

  5. spatiaLite

  6. centos7安装python3.7.4和pip3

    亲测有效,针对 阿里云 centos 7 轻量服务器 python ==> 3.7.4 pip ==>  3 一,打开python官网,找到下载Python的tgz文件,有两种方式下载 ( ...

  7. 一个按权重(weight)进行LB的算法

    package netty; import com.google.common.collect.ImmutableList; import lombok.SneakyThrows; import ja ...

  8. android studio 创建项目的一些配置

    build.gradle文件 apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // 使用 ...

  9. C++ 已知两个时间(年月日)求日期差

    转载:https://blog.csdn.net/flyyufenfei/article/details/79796035 #include<iostream> #include < ...

  10. pip安装yaml

    1.安装:输入pip install pyyaml或者pip3 install pyyaml 2.检查是否安装成功:输入python