博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MetadataType的使用
阅读量:6161 次
发布时间:2019-06-21

本文共 832 字,大约阅读时间需要 2 分钟。

MetadataType的使用,MVC的Model层数据验证
指定要与数据模型类关联的元数据类

using System.ComponentModel.DataAnnotations;

 //指定要与数据模型类关联的元数据类
    [MetadataType(typeof(Product_MetaData))]
    public partial class Product
    {


        public Product()
        {

            this.ProductGuid = Guid.NewGuid();
            this.AddTime = DateTime.Now;
        }
        public class Product_MetaData
        {

            public Guid ProductGuid { get; set; }
            [Required(ErrorMessage = "产品名称不能为空")]
            public string ProductName { get; set; }
            public DateTime AddTime { get; set; }
        }
    }

这样关联之后,可以做一些初始化的工作,还可以做一些验证,以及自定义的验证错误信息,相当于是扩展了Model实体
因为做验证都是在Model层做的,这样好维护,所以需要做元数据,与ADO.NET实体数据模型关联起来。
比如产品价格需要做个输入验证,怎么做呢,请看
[RegularExpression(@"^(\d+)(.\d+)?", ErrorMessage = "价格格式错误")]
[Required(ErrorMessage = "*")]
public double ProductPrice { get; set; }
对不对,是不是很好的进行了扩展,以后需要修改验证,只要在这个元数据类里面修改即可。

 

Controller层调用的时候,验证代码
if (!ModelState.IsValid)
{


 return View();

 

}

转载地址:http://ckefa.baihongyu.com/

你可能感兴趣的文章
使用addChildViewController手动控制UIViewController的切换
查看>>
Android Fragment应用实战
查看>>
SQL Server查询死锁并KILL
查看>>
内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 [问题点数:20分,结帖人wenyang2004]...
查看>>
委托到Lambda的进化: ()=> {} 这个lambda表达式就是一个无参数的委托及具体方法的组合体。...
查看>>
apache 伪静态 .htaccess
查看>>
unity3d 截屏
查看>>
ASP.NET MVC学习之控制器篇
查看>>
MongoDB ServerStatus返回信息
查看>>
分析jQuery源码时记录的一点感悟
查看>>
程序局部性原理感悟
查看>>
UIView 动画进阶
查看>>
Spring如何处理线程并发
查看>>
linux常用命令(用户篇)
查看>>
获取组件的方式(方法)
查看>>
win2008 server_R2 自动关机 解决
查看>>
我的友情链接
查看>>
在C#调用C++的DLL简析(二)—— 生成托管dll
查看>>
Linux macos 常用终端操作
查看>>
企业网络的管理思路
查看>>