MVC学习Day02之校验

MVC校验有两种方法:

方法一:自己动手写js---------略

方法二:

l在View的页面中,首先指定页面强类型@model 类型

l使用Html.***For(model=>model.Property)生成表单,这些表单元素中就会包含校验规则属性

l引用jquery、jquery校验、jquery隐式校验3个组件

l通过Html.EnableClientValidation(true);控制客户端验证的启用与禁用(mvc3中自动开启)

l使用Html.ValidationMessageFor(…)显示校验信息,也可以使用Html.ValidationSummary()统一显示

l点击提交按钮转到后台Action,使用ModelState.IsValid判断前台验证是否成功,如果返回true表示验证成功

准备工作----导入三个必备的js包

<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

验证方式:

在Model中创建类型,用于在View中作为强类型页面的类型

.NET 框架中System.ComponentModel.DataAnnotations命名空间包括了众多可用的内置验证特性,用于修饰属性,常用的四个如下:

•[Required]--非空验证

•[StringLength]---字符长度验证

•[Range]--范围验证

•[RegularExpression]--正则表达式验证

•属性ErrorMessage:指定错误提示信息

注:提示信息要在实体类中的属性中写

例题:

<head>
    <meta name="viewport" content="width=device-width" />
    <title>Person</title>
    <script src="~/Scripts/jquery-1.7.1.min.js"></script>
    <script src="~/Scripts/jquery.validate.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
</head>
<body>
    <div>
        @using (Html.BeginForm("Index", "Home", FormMethod.Post))
        {
            @:姓名:@Html.TextBoxFor(p=>p.Name)
        @Html.ValidationMessageFor(p=>p.Name)//一定记住绑定确认信息,要不然不显示,建议在文本框之后写,这样提示信息也会在文本框之后显示
        <br />
            @:年龄:@Html.TextBoxFor(p=>p.Age)
            @Html.ValidationMessageFor(p=>p.Age)
        <br />
            <input type="submit" />
        }
    </div>
</body>

实体类中也要绑定好属性--一般在属性之上写

public class Person
    {
        [Required(ErrorMessage="<span style=‘color:red‘>*姓名不能为空</span>")]
        [StringLength(6, ErrorMessage = "<span style=‘color:red‘>名字长度不能超过六位</span>")]
        public string Name { get; set; }
        [Required(ErrorMessage = "<span style=‘color:red‘>*年龄不能为空</span>")]
        [Range(18, 160,  ErrorMessage = "<span style=‘color:red‘>*年龄需在18-160之间</span>")]
        public int Age { get; set; }
    }

 

时间: 2024-11-03 22:30:49

MVC学习Day02之校验的相关文章

MVC学习Day02

MVC中的异步请求: 方法一:使用jQuery封装的函数(例子中用的是post请求,$("#form1").serialize()讲表单中的数据序列化提交给服务端)---返回的是纯文本格式 <form id="form1"> <input type="text" name="a1" /> + <input type="text" name="a2" />

MVC学习笔记索引帖

[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习笔记]4.使用Log4Net来进行错误日志的记录 [MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验) [MVC学习笔记]6. 使用Memcache+Cookie解决分布式系统共享登录状态 [MVC学习笔记]7.使用极验验证来制作更高逼格的验证码

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

ASP.NET MVC学习之控制器篇

一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MVC学习之路由篇幅(2) ASP.NET MVC学习之路由篇幅(3) 二.正文 1.IController的使用 这个接口可能很多人都没有使用过,但是我们常用的Controller类实现了这个接口,而且只要实现这个接口就可以作为一个控制器,当然很多的内部的处理就要我们自己去做了. 下面我利用ICont

Asp.Net MVC学习记录之“一个实体对象不能由多个 IEntityChangeTracker 实例引用”

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

前端MVC学习总结——AngularJS验证、过滤器

前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令(directive) 3.1.支持AngularJS功能的指令 3.1.1.应用与模块(ng-app) 3.1.2.控制器(ng-Controller) 3.1.3.包含(ng-Include) 3.1.4.不绑定(ngNonBindable) 3.2.扩展表单元素的指令 3.2.1.ng-opti

ASP.NET MVC学习之过滤器篇(2)

下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成之后更改最终返回的结果,当然很多人一定不太明白这个到底可以干什么, 下面我们举一个比较实际的例子: 相信理解过网站的安全的一定知道跨站请求(CSRF具体可以自行百度,这里我就不去解释了),当然也有解决方案,那就是给页面中增加一个识别码,当页面进行POST请求时,首先判断识别码是否正确, 如果正确则继

PHP实例开发(3)PHP中MVC学习之ThinkPHP

PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务. 2.为什么要使用 MVC 首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序.由于模型返回的数据没有进行格式化,所以同样的构件能