zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【lc-database】595. 大的国家
    Visual Studio 2010软件安装教程
    Win10系统下安装VC6.0教程
    HTTP协议
    正则表达式
    类装饰器
    装饰器工厂函数
    装饰器函数
    闭包
    web服务器
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15722581.html
Copyright © 2011-2022 走看看