Asp.net MVC2学习笔记8-数据验证(前后台统一验证)

2024-02-29 02:58

本文主要是介绍Asp.net MVC2学习笔记8-数据验证(前后台统一验证),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

验证用户的输入在web系统中是肯定要经常用到的,比如说输入不能为空或者输入的字符要在一定的范围内等等。。
 
大多数时候我们使用前台的 Javascript 来验证用户的输入,前面有篇文章已经给大家介绍了前台 javascript验证是不可靠的,所以大部分人在后台insert或者update的之前做了验证,这是比较好的,但是 Asp.net MVC 给我们提供了很多数据验证方法,今天就来介绍一个Model数据验证的方法,使用的命名空间是:System.ComponentModel.DataAnnotations,这个空间给我们提供了很多关于数据验证的方法。。。。。
 
本文的主题是:Asp.net MVC Model数据验证这里给大家推荐一篇文章,这里讲的比较详细,大家看着他的文章相信就能很快明白了: 点击查看
由于这篇文章是英文的,所以我把大概意思给大家描述一下:
 
首先文章的开头教大家如何自己手工写一个Model,并设置验证规则:新建一个 Person类
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
 
在Person 这个Model 中 加入验证规则:Required、Stringlength、Range、RegularExpression等常用的规则,具体含义大家应该都明白
 
Required:必须输入,不能为空
StringLength:字符串的长度不能大于设置的长度
Range:数字的可输入范围
RegularExpression:正则表达式匹配
 
 
 
Model建好了以后,下面就是建Controller和View,这里就举了一个Create 的例子,并添加了一个强类型的View
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
 
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
 
到此为止这就在 服务器端验证了我们设置的规则,下面是客户端 javascript 的验证,也是比较简单的,加上2个js引用一行代码就可以了:
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
 
 
此时客户端验证和服务器端验证都已经生效了,大家运行试验一下就可以看到效果。。。
 
接下来是保存到数据库中,这里我们使用了ASP.NET EF来创建Model,我们可以根据上面写Person规则的方式在已经生成好的Model代码中添加规则,
但是EF产生的.cs文件在修改.edmx 文件后再保存的时候就会被重新创建,所以我们之前绑定的规则会全部消失,所以我们采用连接的方式来把验证规则写在另外一个类中,
通过 MetadataType 来连接。。。。
 
步骤1、将我们之前创建的Person类修改名称为Person_Validation 
步骤2、在EF生产的 cs文件中Person类前加上 MetadataType连接
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
步骤3、修改Controller中的Create方法将验证通过的数据保存进数据库
Asp.net MVC2学习笔记8-数据验证(前后台统一验证) - 郁郁 - 郁郁的博客
 
此时已经全部完成数据验证功能。。。。
 
 
 
下面简单的说一下自定义验证:
ASP.NET MVC2 自定义数据验证我们可以通过继承 ValidationAttribute这个基类来实现我们自己的验证规则,也可以继承现有的规则如:StringLength,RegularExpression等。。
 
我们使用Stringlength的时候,可能我们不仅需要验证字符串最大长度而且需要验证最小长度,这时我们可以来自己实现一个验证最小长度的规则,实现方式也很简单,代码如下:
 
 
public class StringMinLength:ValidationAttribute
    {
        private int _minLength = 0;
        public StringMinLength(int minLength)
        { 
            _minLength = minLength;
        }

        public override bool IsValid(object value)
        {
            if (value.ToString().Length < _minLength)
            {
                return false;
            }

            return true;
        }
    }
 
 
使用的时候就可以和其他一样,给字段加上这个属性就可以了
 
 [StringMinLength(5,ErrorMessage="最小5个字符!!")]
        public string FirstName
        {
            get;
            set;
        }
 
 
 
 

这篇关于Asp.net MVC2学习笔记8-数据验证(前后台统一验证)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757376

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动