当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET MVC 3 直到我膝盖中了一箭【5】模型验证

ASP.NET MVC 3 直到我膝盖中了一箭【5】模型验证

2019年04月19日  | 移动技术网IT编程  | 我要评论

阴齿迅雷下载,iframe属性,ca6140车床法兰盘

1.非空和数据类型

 1         [required]
 2         [display(name = "用户名")]
 3         public string username { get; set; }
 4
 5         [required]
 6         [datatype(datatype.password)]
 7         [display(name = "密码")]
 8         public string password { get; set; }
 9
10         [required]
11         [datatype(datatype.emailaddress)]
12         [display(name = "电子邮件地址")]
13         public string email { get; set; }

2.非空和字符长度

1         [required(errormessage="用户名不能为空!")]
2         [displayname("用户名")]
3         public string username { get; set; }
4
5         [displayname("密码")]
6         [stringlength(6,errormessage="密码长度不能超过6个字符!")]
7         public string password { get; set; }

3.值域
1         [displayname("年龄")]
2         [range(1,int.maxvalue,errormessage="年龄不能小于1!")]       
3         public int age { get; set; }
4.比较

1         [required]
2         [datatype(datatype.password)]
3         [displayname("密码")]
4         public string password { get; set; }
5
6         [datatype(datatype.password)]
7         [displayname("确认密码")]
8         [compare("password", errormessage = "密码和确认密码不匹配!")]
9         public string confirmpassword { get; set; }

5.正则表达式

1         [displayname("联系电话")]
2         [regularexpression(@"^((0\d{2,5}-)|\(0\d{2,5}\))?\d{7,8}(-\d{3,4})?$",errormessage = "电话格式不正确!\n 有效格式为:\n①本区7或8位号码[-3或4位分机号码,可选]\n②(3~5位区号)7或8位号码[-3或4位分机号码,可选]\n③3~5位区号-7或8位号码[-3或4位分机号码,可选]\n示例:023-12345678;(023)1234567-1234")]
3         public string phone { get; set; }
4         [displayname("电子邮件")]
5         [regularexpression(@"^\w+((-\w+)|(\.\w+))*\@[a-za-z0-9]+((\.|-)[a-za-z0-9]+)*\.[a-za-z0-9]+$", errormessage = "请输入正确的email格式!\n示例:")]
6         public string email { get; set; }
7         [displayname("网址")]
8         [regularexpression(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", errormessage = "请输入合法的网址!\n示例:")]
9         public string httpaddress { get; set; }

6.自定义
1         [required]
2         [validatepasswordlength]
3         [datatype(datatype.password)]
4         [displayname("密码")]
5         public string password { get; set; }

 1     [attributeusage(attributetargets.field | attributetargets.property, allowmultiple = false, inherited = true)]
 2     public sealed class validatepasswordlengthattribute : validationattribute, iclientvalidatable
 3     {
 4         private const string _defaulterrormessage = "'{0}' 必须至少包含 {1} 个字符。";
 5         private readonly int _mincharacters = membership.provider.minrequiredpasswordlength;
 6
 7         public validatepasswordlengthattribute()
 8             : base(_defaulterrormessage)
 9         {
10         }
11
12         public override string formaterrormessage(string name)
13         {
14             return string.format(cultureinfo.currentculture, errormessagestring,
15                 name, _mincharacters);
16         }
17
18         public override bool isvalid(object value)
19         {
20             string valueasstring = value as string;
21             return (valueasstring != null && valueasstring.length >= _mincharacters);
22         }
23
24         public ienumerable<modelclientvalidationrule> getclientvalidationrules(modelmetadata metadata, controllercontext context)
25         {
26             return new[]{
27                 new modelclientvalidationstringlengthrule(formaterrormessage(metadata.getdisplayname()), _mincharacters, int.maxvalue)
28             };
29         }
30     }

7.其他

作者 依信依誉

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网