MVC进阶篇(三)——model层数据验证
前言
常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西。我写了一个小demo,分享给大家。
内容
一个表单的提交,进行相应的验证。微软提供的MVC中的model层数据验证。
Demo
Model层
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; namespace mvctest.Models
{
public class usermodel
{
/*
* 在MVC里面采用数据验证,
* 引用:using System.ComponentModel.DataAnnotations
*/
[Required(ErrorMessage = "名称不能为空")]
[StringLength(10, ErrorMessage = "您输入的字符不能超过10个")]
[DisplayName("姓名")]
public string userName { get; set; } [Required(ErrorMessage = "性别不能为空")]
[DisplayName("性别")]
public string sex { get; set; } [Required(ErrorMessage = "*必填项")]
[RegularExpression(@"^[\w\-\.]+@[\w\-\.]+(\.\w+)+$", ErrorMessage = "邮箱输入不正确")]
[DisplayName("邮箱")]
public string eMail { get; set; }
}
}
View层
<div>
@*表单提交*@
@using (Html.BeginForm("userinfo", "Home", FormMethod.Post))
{
<p>@Html.LabelFor(b => b.userName):@Html.TextBoxFor(b => b.userName):@Html.ValidationMessageFor(b=>b.userName)</p>
<p>@Html.LabelFor(b => b.eMail):@Html.TextBoxFor(b => b.eMail):@Html.ValidationMessageFor(b=>b.eMail)</p>
<p>@Html.LabelFor(b => b.sex):@Html.TextBoxFor(b => b.sex):@Html.ValidationMessageFor(b=>b.sex)</p>
<input type="submit" value="提交" />
}
</div>
Controller层
/*
* 姓名:周丽同-2016年12月30日16:09:40
* 功能:表单验证
*/
public ActionResult userinfo(Models.usermodel usermodel)
{
ViewData["message"] = "数据基本验证成功";
return View(usermodel);
}
效果图
小结
通过这些验证,是不是用户体验度更加高了。
感谢您的宝贵时间···
MVC进阶篇(三)——model层数据验证的更多相关文章
- MetadataType的使用,MVC的Model层数据验证
MetadataType的使用,MVC的Model层数据验证 指定要与数据模型类关联的元数据类 using System.ComponentModel.DataAnnotations; //指定要 ...
- 【转】METADATATYPE的使用,MVC的MODEL层数据验证
http://www.cnblogs.com/chshnan/archive/2011/07/08/2100713.html MetadataType的使用,MVC的Model层数据验证指定要与数据模 ...
- Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径
Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径 我们要实现 通过路由 匹配出 博客地址 和博客文章地址 例如下面的这两个地址 //http://www.cnblogs.com/ma ...
- Model层数据验证
问题1:View层如何向Controller的Action传递Model数据?在View中,可以使用Form表单进行模型数据的提交,同样的,我们需要关联提交数据的类型,则需要在View中使用@mode ...
- MVC进阶篇(一)——概览
前言 说到MVC,就得先说说框架是什么东西,MVC好多人都知道,是Model.view.controller,但是MVC到底是什么样的一个框架呢,好多人又说了是约定大于配置.下面我来说说我的理解. 内 ...
- 10、ASP.NET MVC入门到精通——Model(模型)和验证
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 模型就是处理业务,想要保存.创建.更新.删除的对象. 注解(通过特性实现) DisplayName Required StringLengt ...
- Django(进阶篇)之model
Model 解析 Django的数据库,涉及相关操作时就是以下流程: 1.创建数据库,设计表结构和字段 2.使用Mysqldb来连接数据库,并编写数据访问层 3.业务逻辑层去调用数据访问层执行数据库操 ...
- MVC进阶篇(四)——[HttpGet]和[HttpPost]
前言 Get和post,一个获取请求,一个提交请求,在MVC里面用法也很特别,总结一下,我理解的不是特别深刻,希望多多交流. 内容 [HttpGet] 需求: 用户想要通过点击修改按钮来达到修改这部分 ...
- MVC进阶篇(二)—路由机制
前言 这个东西好像,一般也不经常动,都用默认的即可.由于MVC模式在framework里面的解析机制,区别与webform模式,是采用解析路由机制的url.从来实例化视图列对象,然后对该action进 ...
随机推荐
- 修改Ubuntu默认apt下载源
修改Ubuntu默认apt下载源 默认下载源很慢,改成阿里的下载速度超快 sudo vim /etc/apt/sources.list 将文件内容替换成 deb http://mirrors.aliy ...
- 第一次接触python:学习最简单的print及变量
# -*- coding:utf-8 -*- print "hello world" print("hello world") 这里面使用了2中print方式, ...
- Vulkan Tutorial 03 理解Instance
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Creating an instance 与Vulkan打交道,通常的步骤是创建一个 ...
- fbx模型
[fbx模型] 1.FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由Autodesk开发,但后来被其收购),目前被 众多的标准建模软件所支持,在游戏开发领域也常用来作为各种 ...
- C++——STL容器
序列式容器:vector,list,deque:stack,queue(容器适配器),heap,priority_queue,slist 关联式容器:(底层都是红黑树)set,map,multiset ...
- 643. Maximum Average Subarray I 最大子数组的平均值
[抄题]: Given an array consisting of n integers, find the contiguous subarray of given length k that h ...
- ROS naviagtion analysis: costmap_2d--Costmap2DROS
博客转载自:https://blog.csdn.net/u013158492/article/details/50485418 在上一篇文章中moveBase就有关于costmap_2d的使用: pl ...
- CopyOnWriteArrayList原理
http://blog.csdn.net/chayangdz/article/details/76347465 总结的很到位: http://www.cnblogs.com/java-zhao/p/5 ...
- SpringMVC——文件的上传
一.加入依赖 commons-io-2.0.jar commons-fileupload-1.2.1.jar 二.接口MultipartResolver Spring MVC 为文件上传提供了直接的支 ...
- 【Web API2】ASP.NET Web API Security
实现安全的方式既可以是host提供,也可以框架提供. 1,HTTP Module 方式,工作在IIS上,所以web api要托管在IIS上才行.其作用于HTTP管道的最前端,所以这种方式影响的是全局, ...