• DataAnnotations 简单的数据注解


    数据注解,个人认为就是用于数据模型的数据校验使用(这是其中的一个用处)
    在这里,我将其用于替换原来接口中繁琐的if判断数据校验。
    命名空间:using System.ComponentModel.DataAnnotations;
    常用校验:
    1.Required :属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)]

    2.DisplayName :显示名 – 定义表单字段的提示名称

    3.StringLength :字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)]

    4.Range :范围 – 数字的可输入范围[Range(10, 20)] ,属性值必须在指定的数值范围内,可以使用数值类型的最大最小值比如int.MinValue、int.MaxValue

    5.Bind :绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段

    6.ScaffoldColumn :支架列 - 在编辑表单的时候,需要隐藏起来的的字符 [ScaffoldColumn(true|false)]

    7.Compare: 比较 - 与制定的字段值进行比较 具体见代码 [Compare(“MyOtherProperty”)]两个属性必须相同值,比如我们要求用户重复输入两次邮件地址时有用

    8.RegularExpre ssion: 正则表达式匹配,字符串值必须匹配正则表达式,默认大小写敏感,可以使用(?i)修饰符关闭大小写敏感,比如[RegularExpre ssion("(?i)mypattern")]

    9.DataType :在前端显示的文本框类型

    Remote :服务端验证

    [Editable(false)] //放在主键上显示不可修改

    直接上代码:
    这里注意要引进MVC,在Nuget里面安装

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.ComponentModel.DataAnnotations;

    namespace DataAnnotations.Web.Areas.Api.Controllers
    {
    public class TestController : Controller
    {
    public class TestModel
    {
    /// <summary>
    /// 定义用户名必填
    /// </summary>
    [Required(ErrorMessage = "请输入名字")]
    public string name { set; get; }
    /// <summary>
    /// 密码
    /// </summary>
    [Required]
    [StringLength(128, MinimumLength = 6, ErrorMessage = "密码不能低于六位数")]
    public string pwd { set; get; }
    [Required]
    [System.ComponentModel.DataAnnotations.Compare("pwd", ErrorMessage = "两次密码输入不一致")]
    public string rpwd { set; get; }
    //定义邮件为必填,且满足邮件格式
    [Required]
    [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]
    public string email { get; set; }
    [Required]
    [Range(1, 100)]
    //定义年纪在1到100之间
    public int age { set; get; }
    }
    // GET: Api/Test
    [HttpPost]
    public ActionResult Index(
    TestModel model)
    {
    if (!ModelState.IsValid)
    {
    var xx = ModelState.Values
    .SelectMany(v => v.Errors);
    foreach (var ss in xx)
    {
    Console.WriteLine(ss.ErrorMessage);
    }
    var message = string.Join(" |", ModelState.Values
    .SelectMany(v => v.Errors)
    .Select(e => e.ErrorMessage));
    return Json(new
    {
    msg = message,
    errcode = 0
    });
    }
    return Json(new
    {
    msg = "提交成功",
    errcode = 0
    });
    }
    }
    }
    ————————————————
    版权声明:本文为CSDN博主「ldl_csdn_ios」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ldl_csdn_ios/article/details/107410783

  • 相关阅读:
    kubernetes 之配置问题
    awk 输入文件包含某个关键字的整行记录或者某个字段
    Kubernetes资源在线生成工具
    使用print计算一串字符串各字符出现的个数
    Kubernetes 部署可视化dashboard管理面板
    nexus 3.37.302安装
    阿里云免费证书验证,nginx返回403,/.wellknown/pkivalidation/
    通过docker安装openldap并通过ldapadmin配置用户与第三方软件集成ldap配置
    kubernetes创建storageclass
    k8s快速生成一个deploymenet的yaml文件
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15722581.html
Copyright © 2020-2023  润新知