【转】METADATATYPE的使用,MVC的MODEL层数据验证
http://www.cnblogs.com/chshnan/archive/2011/07/08/2100713.html
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();
}
【转】METADATATYPE的使用,MVC的MODEL层数据验证的更多相关文章
- MetadataType的使用,MVC的Model层数据验证
MetadataType的使用,MVC的Model层数据验证 指定要与数据模型类关联的元数据类 using System.ComponentModel.DataAnnotations; //指定要 ...
- MVC进阶篇(三)——model层数据验证
前言 常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西.我写了一个小demo,分享给大家. 内容 一个表单的提 ...
- Model层数据验证
问题1:View层如何向Controller的Action传递Model数据?在View中,可以使用Form表单进行模型数据的提交,同样的,我们需要关联提交数据的类型,则需要在View中使用@mode ...
- 48-Identity MVC:Model前后端验证
1-创建RegisterViewModel类 namespace MvcCookieAuthSample.ViewModel { public class RegisterViewModel { [R ...
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...
- asp.mvc展示model
1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model 主要负责维持数据状态,将数据从数据存 ...
- [转]ASP.NET MVC 2: Model Validation
本文转自:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx?CommentPo ...
- 仅此一文让你明白ASP.NET MVC 之Model的呈现(仅此一文系列三)
本文目的 我们来看一个小例子,在一个ASP.NET MVC项目中创建一个控制器Home,只有一个Index: public class HomeController : Controller { pu ...
- Asp.net MVC使用Model Binding解除Session, Cookie等依赖
上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...
随机推荐
- 20155301 Web基础
20155301 Web基础 1.基础问题回答 (1)什么是表单 答: 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输入信息的元素 (2)浏 ...
- MiZ702学习笔记10——文本实例化IP的方法
之前,添加vivado自带IP的时候,都是以图形化的方式:一般是新建一个Block Design顶层文件,然后将图形化的ip贴到,Block Design中. 但是,在进行PL的开发过程中,有时不想使 ...
- dxp altium pcb里面如果想让重叠的两个元件不报错怎么设置?
dxp的设置是Design Rules里面有个Placement选项,把第一个的钩去掉即可.
- scala学习——(1)scala基础(上)
scala> val x = 1 x: Int = 1 一.值与变量 值(val):赋值后不可变 val值名称:类型 = XXX 变量(var):赋值后可以改变 var变量名称:类型 = XX ...
- Linux+Nginx+Asp.net Core及守护进程部署
上篇<Docker基础入门及示例>文章介绍了Docker部署,以及相关.net core 的打包示例.这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完 ...
- 阿里云ESC入网和出网指的什么
什么是入网带宽和出网带宽 云服务器 ECS 的入网带宽和出网带宽皆以服务器角度出发.下表给出了入网带宽和出网带宽的具体内容: 带宽类别 (Mbit/s) 描述 入网带宽 流入云服务器 ECS 的带宽从 ...
- Unity Inspector添加自定义按钮(Button)
在Unity开发游戏的时候,为了有一个更快更方便的工作流,我们往往会在Editor下开发一些方便实用的工具.在工具中,用到最多,最关键的就是按钮,它是工具的首席执行官.下面就用最简单的代码来演示添加一 ...
- 使用kubeadm安装kubernetes高可用集群
kubeadm安装kubernetes高可用集群搭建 第一步:首先搭建etcd集群 yum install -y etcd 配置文件 /etc/etcd/etcd.confETCD_NAME=inf ...
- django反向解析URL和URL命名空间
django反向解析URL和URL命名空间 首先明确几个概念: 1.在html页面上的内容特别是向用户展示的url地址,比如常见的超链接,图片链接等,最好能动态生成,而不要固定. 2.一个django ...
- Google I/O 2018大会小结
Google I/O 2018大会于北京时间5月9日凌晨1点,在美国山景城Shoreline Amphitheatre(圆形剧场)举办.看了一下录播,字幕延迟,全程靠听,下面对上午的主会进行一个小结. ...