• 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; }
    }

  • 相关阅读:
    Google快照查看八大绝招[小摘]
    CSS li或dd 浮动后增加图片时多出4PX问题
    ASP.NET C# 邮件发送全解
    ff ie7 ie6 css支持问题[拼网页标记]
    net 中 等同与ajax的效果 ICallbackEventHandler
    让DIV层位于flash对象之上
    屏蔽JS错误代码
    META标签的使用摘录,网页跳转特效
    【转】海量数据处理常用思路和方法
    MFC画图定时刷新,能否做到完全无闪烁
  • 原文地址:https://www.cnblogs.com/wfy680/p/12275632.html
Copyright © 2020-2023  润新知