MVC 数据验证收集代码

控制器 Home

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace MvcApplication3.Controllers
 8 {
 9     public class HomeController : Controller
10     {
11         public ActionResult Index()
12         {
13             ViewBag.Message = "修改此模板以快速启动你的 ASP.NET MVC 应用程序。";
14 
15             return View();
16         }
17 
18         ///   
19         /// 检查用户名是否有重复  
20         ///   
21         /// 用户在页面(视图)表单中输入的UserName  
22         /// Json  
23         public ActionResult CheckUserName(string userName)
24         {
25             bool result = true;
26 
27             if (userName == "admin")
28                 result = false;//已存在
29 
30             return Json(result, JsonRequestBehavior.AllowGet);
31         }
32     }
33 }
View Code

Model(UserInfo)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 using System.Web;
 8 
 9 using System.Web.Mvc;
10 using System.ComponentModel;
11 using System.ComponentModel.DataAnnotations;
12 namespace Model
13 {
14     ///   
15     ///  这些例子就是验证的,注意此处没有客户端验证,完全是服务器端验证的,如果出错,视图会渲染再次显示,非常好用啊,很方便啊,要在以前你要写多少行代码来搞定这些繁琐无味的验证呢?微软太体恤程序员了,顶一个。  
16     ///  在下面的例子当中,当数据发送到服务器验证不通过之后,则所有用户填写的内容在重新打开的页面后都清空了, 如果想不清空,即用户第一次填的内容还存在的话,可以return View(接受到的对象);  
17     ///   
18     public class UserInfo
19     {
20         public int Id { get; set; } //ID  
21         ///   
22         ///DisplayName:指定当前字段显示的名称  
23         ///StringLength:指定允许的长度,括号里的第一个参数是最大长度,第二个参数是最小长度。最后一个参数是指:单字段值的长度不符合第一第二参数规定时候,提示错误的内容  
24         ///Required:表示当前字段是必填选项,当提交的表单缺少该值就引发验证错误。括号里的AllowEmptyStrings是: 获取或设置一个值,该值指示是否允许空字符串。单值为false的时候表示当前字段的值不能为空  
25         ///Remote:允许利用服务器端的回调函数执行客户端的验证逻辑。说白了就是支持AJAX验证。括号里的CheckUserName是Action方法。Home是控制器 ,它会调用Home控制中的CheckUserName方法来查询你所输入的用户名是否已经存在,如果存在,则提示"用户名已经存在"        
26         ///   
27         [DisplayName("用户名")]
28         [Required(AllowEmptyStrings = false, ErrorMessage = "用户名不能为空")]
29         [StringLength(10, MinimumLength = 2, ErrorMessage = "用户名长度必须在{2}和{1}位之间")]
30         [Remote("CheckUserName", "Home", ErrorMessage = "用户名已经存在")]
31         public string UserName { get; set; } //用户名  
32 
33         [DisplayName("用户密码")]
34         [DataType(DataType.Password)] //将密码已*号的形式来显示  
35         [Required(AllowEmptyStrings = false, ErrorMessage = "密码不能为空")]
36         [StringLength(12, MinimumLength = 6, ErrorMessage = "密码长度必须在{2}和{1}位之间")]
37         public string UserPassword { get; set; } //用户密码  
38 
39         [DataType(DataType.Password)]
40         [System.ComponentModel.DataAnnotations.Compare("UserPassword", ErrorMessage = "密码不一致")]
41         [DisplayName("请再次确认密码")]
42         public string TUserPassword { get; set; }  //再次输出密码  
43 
44         ///   
45         /// RegularExpression:表示当前字段的值要符合一个正则表达式。如果不能匹配,则报一个验证错误。ErrorMessage的内容就是验证错误的具体信息。  
46         ///   
47         [Display(Name = "邮箱")] //也可以写成  [DisplayName("邮箱")]  
48         [Required(AllowEmptyStrings = false, ErrorMessage = "邮箱不能为空")]
49         //[DataType(DataType.EmailAddress, ErrorMessage = "xxxxxxxx")] //其实也可以用以下的正则表达式来验证邮箱  
50         [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9]+\.[A-Za-z]{2,4}", ErrorMessage = "{0}的格式不正确")]
51         public string Email { get; set; } //邮箱  
52 
53         [DisplayName("请再次确认邮箱")]
54         [System.ComponentModel.DataAnnotations.Compare("Email", ErrorMessage = "两次输入的邮箱不一致")]
55         //[DataType(DataType.EmailAddress, ErrorMessage = "请输入有效的邮箱地址")]  
56         public string TEmail { get; set; } //再次输入邮箱  
57 
58         [DisplayName("身份证")]
59         [RegularExpression(@"\d{17}[\d|x]|\d{15}", ErrorMessage = "身份证号码格式错误")]
60         public string IdentityNo { get; set; } //身份证号  
61 
62         ///   
63         /// Range:用来指定数值类型值的最小值和最大值。括号里的第一个数的“最小值”第二个参数是“最大值”  
64         ///   
65         [DisplayName("年龄")]
66         [Required(AllowEmptyStrings = false, ErrorMessage = "年龄不能为空")]
67         [Range(10, 120, ErrorMessage = "您输入的年龄不符合规范,年龄应该在{1}-{2}之间")]
68         public int Age { get; set; } //年龄  
69 
70         ///   
71         /// DisplayFormat:用来处理属性的各种格式化选项。当属性包含空值时,可以提供可选的显示文本,也可以为包含标记的属性关闭HTML编码,还可以为运行时指定一个应用于属性值的格式化字符串。  
72         ///   
73         [DisplayName("金额")]
74         [DataType(DataType.Currency)] //Currency:表示货币值  
75         [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
76         [Required(ErrorMessage = "金额不能为空")]
77         [Range(typeof(decimal), "20.0", "30.0", ErrorMessage = "金额在{1}和{2}之间")]
78         public decimal Money { get; set; } //金额  
79 
80         [Display(Name = "手机号码")]
81         [DataType(DataType.PhoneNumber)]
82         [RegularExpression(@"((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)", ErrorMessage = "格式不正确")]
83         public int Phome { get; set; }
84 
85 
86         [Display(Name = "生日")]
87         //[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="yyyy/MM/dd")]  
88         [Required] //当前字段的值不能为空  
89         public DateTime Birthday { get; set; } //生日  
90 
91         [Display(Name = "备注")]
92         [DataType(DataType.MultilineText)] //当前字段是个多行文本  
93         public string Remarks { get; set; } //备注  
94 
95 
96     }  
97 }
View Code

View (Index)

  1 @model Model.UserInfo
  2 @{
  3     ViewBag.Title = "主页";
  4 }
  5 
  6 
  7 
  8 @using (Html.BeginForm())
  9 {  
 10     @Html.ValidationSummary(true)  
 11       
 12     
13 UserInfo 14 15
16 @Html.LabelFor(model => model.UserName) 17
18
19 @Html.EditorFor(model => model.UserName) 20 @Html.ValidationMessageFor(model => model.UserName) 21
22 23
24 @Html.LabelFor(model => model.UserPassword) 25
26
27 @Html.EditorFor(model => model.UserPassword) 28 @Html.ValidationMessageFor(model => model.UserPassword) 29
30 31
32 @Html.LabelFor(model => model.TUserPassword) 33
34
35 @Html.EditorFor(model => model.TUserPassword) 36 @Html.ValidationMessageFor(model => model.TUserPassword) 37
38 39
40 @Html.LabelFor(model => model.Email) 41
42
43 @Html.EditorFor(model => model.Email) 44 @Html.ValidationMessageFor(model => model.Email) 45
46 47
48 @Html.LabelFor(model => model.TEmail) 49
50
51 @Html.EditorFor(model => model.TEmail) 52 @Html.ValidationMessageFor(model => model.TEmail) 53
54 55
56 @Html.LabelFor(model => model.IdentityNo) 57
58
59 @Html.EditorFor(model => model.IdentityNo) 60 @Html.ValidationMessageFor(model => model.IdentityNo) 61
62 63
64 @Html.LabelFor(model => model.Age) 65
66
67 @Html.EditorFor(model => model.Age) 68 @Html.ValidationMessageFor(model => model.Age) 69
70 71
72 @Html.LabelFor(model => model.Money) 73
74
75 @Html.EditorFor(model => model.Money) 76 @Html.ValidationMessageFor(model => model.Money) 77
78 79
80 @Html.LabelFor(model => model.Phome) 81
82
83 @Html.EditorFor(model => model.Phome) 84 @Html.ValidationMessageFor(model => model.Phome) 85
86 87
88 @Html.LabelFor(model => model.Birthday) 89
90
91 @Html.EditorFor(model => model.Birthday) 92 @Html.ValidationMessageFor(model => model.Birthday) 93
94 95
96 @Html.LabelFor(model => model.Remarks) 97
98
99 @Html.EditorFor(model => model.Remarks) 100 @Html.ValidationMessageFor(model => model.Remarks) 101
102 103

104 105

106
107 } 108 109
110 @Html.ActionLink("Back to List", "Index") 111
View Code

 最终效果

你可能感兴趣的:(java,python,js,vue,mvc)