一、添加模型

    public class Account
{
public int ID { get; set; } [Display(Name = "姓名")] //设置要显示的字段名
[Required(ErrorMessage = "您需要填写{0}")] //设置为必须字段 已经错误提示
[StringLength(, MinimumLength = )] //设置最大长度和最小长度
public string Name { get; set; } [Display(Name = "年龄")]
[Range(, , ErrorMessage = "年龄填写不正确!")] //设置 值范围
public int Age { get; set; } [Display(Name = "身高")]
[Range(typeof(decimal), "50.00", "250.00", ErrorMessage = "身高超出指定范围")]
public decimal Height { get; set; } [Display(Name = "生日")]
[DataType(DataType.Date, ErrorMessage = "{0}格式不正确")] //设置数据类型以及错误提示
public DateTime Birthday { get; set; } [Display(Name = "电话")]
[Remote("CheckPhone", "Account", ErrorMessage = "{0}已被注册")] //在指定的Conteroller中的通道(route)中验证数据
public string Phone { get; set; } [Display(Name = "地址")]
[DataType(DataType.MultilineText)]
public string Address { get; set; } [Display(Name = "电子邮箱")]
[RegularExpression(@"(\w)+(\.\w+)*@(\w)+((\.\w+)+)", ErrorMessage = "{0}格式不正确")] //正则验证
public string Email { get; set; } [Display(Name = "再次输入电子邮箱")]
[Compare("Email", ErrorMessage = "{0}两次输入不一致")] //设置比较两个字段的值
public string EmailConfirm { get; set; } [Display(Name = "密码")]
[DataType(DataType.Password)]
public string Password { get; set; } [Display(Name = "备用电子邮箱")]
[DataType(DataType.EmailAddress, ErrorMessage = "{0}格式不正确")]
public string email_B { get; set; }
}

Models

二、添加控制器

    public class AccountController : Controller
{
//
// GET: /Account/ public ActionResult Register()
{
return View();
} [HttpPost]//主意表单提交默认post,要加上HttpPost特性
public ActionResult Register(Account model)
{
if (ModelState.IsValid)//模型验证注解验证是否成功
{
//执行其他验证...如果验证不通过则向模型验证添加错误信息:ModelState.AddModelError("key", "错误信息"); //如果其他验证成功则调用业务逻辑... //执行成功则跳转页面
return RedirectToActionPermanent("Index", "Home");
}
return View(model);
} //Remote验证
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)] //清除缓存
public JsonResult CheckPhone(string Phone)
{
bool flag = true;//检测phone的方法调用
if (flag)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(false, JsonRequestBehavior.AllowGet);
} }

Controller

三、添加视图

@model MvcApplication2.Models.Account

@{
ViewBag.Title = "Register";
} <h2>Register</h2> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> @using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Account</legend> <div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Age)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Age)
@Html.ValidationMessageFor(model => model.Age)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Height)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Height)
@Html.ValidationMessageFor(model => model.Height)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Birthday)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Birthday)
@Html.ValidationMessageFor(model => model.Birthday)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Phone)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Phone)
@Html.ValidationMessageFor(model => model.Phone)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Address)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address)
@Html.ValidationMessageFor(model => model.Address)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div> <div class="editor-label">
@Html.LabelFor(model => model.EmailConfirm)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.EmailConfirm)
@Html.ValidationMessageFor(model => model.EmailConfirm)
</div> <div class="editor-label">
@Html.LabelFor(model => model.Password)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Password)
@Html.ValidationMessageFor(model => model.Password)
</div> <div class="editor-label">
@Html.LabelFor(model => model.email_B)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.email_B)
@Html.ValidationMessageFor(model => model.email_B)
</div> <p>
<input type="submit" value="Create" />
</p>
</fieldset>
}

主意,该视图是使用mvc模板创建,也可以手动编写

asp.net mvc 模型验证注解,表单提交的更多相关文章

  1. ASP.NET MVC - 模型验证

    ASP.NET MVC - 模型验证(Model verification) 模型验证原理浅析 模型验证用到了模型绑定器.模型验证器(System.Web.Mvc.DataAnnotationsMod ...

  2. asp.net mvc 模型验证组件——FluentValidation

    asp.net mvc 模型验证组件——FluentValidation 示例 using FluentValidation; public class CustomerValidator: Abst ...

  3. ASP.NET没有魔法——ASP.NET MVC 模型验证

    在前面的文章中介绍了用户的注册及登录功能,在注册用户时可以通过代码的形式限制用户名及密码的格式,如果不符合要求那么就无法完成操作,如下图: 该功能的原理是Identity基于的Entity Frame ...

  4. Jqueruy验证 form表单提交之前的中的数据

    //---表单提交---- $("#destiation_form").submit(function(){ var from_city_value=$("#from_c ...

  5. Asp.Net MVC 模型验证详解-实现客户端、服务端双重验证

    概要 在asp.net webform开发中经常会对用户提交输入的信息进行校验,一般为了安全起见大家都会在客户端进行Javascript(利于交互).服务端双重校验(安全).书写校验代码是一个繁琐的过 ...

  6. 当ASP.NET MVC模型验证遇上CKEditor

    项目需要,使用到了CKEditor编辑器.这是个很不错的富文本编辑器,但是当它绑定的字段需要进行模型验证的时候,却会出现验证失效的问题.因此本文旨在记录这个问题和给出解决办法.以下以Validatio ...

  7. asp.net mvc 模型验证-最舒服的验证方式

    在院子里发现 http://www.cnblogs.com/yangecnu/p/3759784.html 模型验证方法 1. 一般方法 繁琐, 无数的if else, 在炎炎夏天,我见过一个验证方法 ...

  8. aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)

    这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲     上面是效果,下面来说使用步骤 jQuery.Valid ...

  9. ASP.NET MVC 4 (十三) 基于表单的身份验证

    在前面的章节中我们知道可以在MVC应用程序中使用[Authorize]特性来限制用户对某些网址(控制器/控制器方法)的访问,但这都是在对用户认证之后,而用户的认证则依然是使用ASP.NET平台的认证机 ...

随机推荐

  1. 【问题】AndroidStudio导入项目一直卡在Building gradle project infod的最快速解决方案

    原因 AndroidStudio导入项目一直卡在Building gradle project info的原因, 是因为导入的这个项目使用的gradle版本与本地已经拥有的gradle版本不一致,导致 ...

  2. TFS二次开发系列:六、TFS的版本控制

    在TFS中对于版本控制是在WorkSpace工作区来控制的. 首先我们先整理WorkSpace的一些基本使用方法. CheckIn:迁入挂起的操作 CreateMapping:创建一个本地映射地址 D ...

  3. getRuntime

    private static void test() { try { Process process = Runtime.getRuntime().exec("cmd"); Dat ...

  4. HTML特殊转义字符列表

    HTML特殊转义字符列表 最常用的字符实体 显示  说明  实体名称  实体编号   空格       <       小于   <  < >  大于  > > & ...

  5. 解决 java 使用ssl过程中出现"PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

    今天,封装HttpClient使用ssl时报一下错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExc ...

  6. iStylePDF c#集成开发示例

    iStylePDF安装包自带了ActiveX控件,下载安装包安装之后就可以使用,如果没有安装包请到360软件管家或者腾讯软件管家搜索下载.C#的Form中集成ActiveX控件还是非常简单的,选择添加 ...

  7. linux应用程序开发-进程程序设计

    学习之前必须了解基本的概念: 进程,线程,进程3种状态,进程调度以及4种算法,进程同步,死锁,记不清的找度娘. 获取ID #include<sys/types.h> #include< ...

  8. 控制移动端页面的缩放(meta)

    meta标签中的content属性里有一个width=device-width的值,这个值就是用来告诉浏览器,该页面将要使用设备的宽度来解析,后面的属性值则是告诉该页面: user-scalable= ...

  9. jdbcTemplate的Dao层封装

    package com.easyrail.base.dao; import java.io.Serializable; import java.lang.reflect.Field; import j ...

  10. 网上找的Gif图片解析类

    这个是搜到的大部分的答案 下面贴出来代码 public class MyGifView extends View { private long movieStart; private Movie mo ...