• ASP.NET MVC扩充数据模型-定义数据模型的Metadata


    ASP.NET MVC扩充数据模型-定义数据模型的Metadata

     
     
    Rate this post

    无论你是使用LINQ to SQL、Entity Framework或其他ORM技术建置基础数据模型,大部分的ORM技术都会提供部分类别(Partial Class)的扩充机制,可以让你扩充通过工具生成的这些数据模型类别,进一步提供更完整的数据服务。

    定义数据模型的Metadata

    数据模型的Metadata又称ModelMetadata,ModelMetadata用来定义数据模型的相关属性(Attribute),例如,显示名称、数据长度及数据格式验证等,在.NET 3.5 SP1时期,ASP.NET新增了一组System.ComponetModel.DataAnnotations命名空间的类别,到了.NET 4.0又进一步扩充这个命名空间的属性(Attribute),而ASP.NET MVC也更是利用了这个特性,让我们可以直接使用DataAnnotations机制,对ASP.NET MVC中定义的数据模型加以扩充定义。

    .NET 4.0的System.ComponetModel.DataAnnotations命名空间中提供了如下的验证属性

    • StringLength:字符串字段所允许的最大长度
    • Required:必填字段
    • RegularExpression:字段属性必须符合所指定的正则表达式
    • Range:数字字段必须符合的范围
    • CustomValidation:自定义字段验证规则

    以下是一个简单的会员数据模型类别演示,我们利用System.ComponetModel.DataAnnotations命名空间中定义的一些属性,为每个字段加上批注。每个会员信息都有姓名、Email以及表情图标三个字段,姓名是必填字段,所以套用了Required属性;Email比如符合正确的格式,所以利用RegularExpression属性去验证用户输入的格式:表情图标需从限定的三个图标中挑选一个,我们在数据库中以int格式做定义。因此,可以利用Range属性去验证该字段的值只能出现1~3的整数。

    演示程序代码如下:

    public class Member
    {
    [Required]
    public string Name { get; set; }
    [RegularExpression(@"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4})$"
    ,ErrorMessage = "请输入正确的Email格式")]
    public string Email { get; set; }
    [Range(1, 3, ErrorMessage = "请选择代表图标")]
    public int EmotionIcon { get; set; }
    }

  • 相关阅读:
    spring整合myBatis
    spring之事物
    spring之AspectJ实现AOP
    AOP之JDK动态代理和CGLib动态代理
    iOS-面试相关<一>
    iOS -调试工具Instruments使用总结
    iOS-阅读器常年崩溃问题记录
    iOS
    ios
    iOS
  • 原文地址:https://www.cnblogs.com/wfy680/p/12275632.html
Copyright © 2020-2023  润新知