mvc模型验证

使用mvc模型验证时可以避免多个麻烦的前端if判断:

例如:我们判断前端的用户名和密码是否输入时通常这样写:

//判断用户名是否为空
if(string. string.IsNullOrWhiteSpace(name)){
//用户名为空的逻辑
return;
}
//判断密码是否为空
if(string. string.IsNullOrWhiteSpace(pwd)){
//密码为空的逻辑
return;
}

这么写可以实现程序想要的效果;但是遇到频繁的判断时多个if显得过于繁琐。这个时候mvc模型验证的用处就来了。

使用mvc模型验证时先引用此命名空间;

using System.ComponentModel.DataAnnotations;

接下来就是在模型中使用特性判断:

mvc模型有以下特性:

  1. [Required]:必填
  2. [StringLength(60)]:字符串长度验证,最大60
  3. [StringLength(50, MinimumLength = 6)]:字符串长度验证,最小6最大50
  4. [Range(typeof(Decimal), "0", "100", ErrorMessage = "{0} ]必须是数字介于 {1} 和 {2}之间.")]:范围跟上错误提示
  5. [Range(typeof(decimal), "0.00", "49.99")]:小数的范围
  6. [Range(typeof(DateTime), "11/10/2017", "11/10/2021")]:日期范围
  7. [Range(35,44)]:范围
  8. [RegularExpression(@”[A-Za-z0-9._%+-]+")]:正则的验证
  9. [Compare("Password",ErrorMessage="密码要一致")]:进行两个值比较,比如用于密码是否相同
  10. [Remote("CheckUserName", "Register", ErrorMessage = "用户名已被注册")]:远程验证

我们在模型中使用特性:

public int Id { get; set; }

[Required(ErrorMessage = "用户名不能为空")]
public string UserName { get; set; }

[Required(ErrorMessage = "密码不能为空")]
public string pwd { get; set; }     

判断的时候直接使用ModelState.IsValid就OK:


if(!ModelState.IsValid){
//如果模型里面的特性判断不通过时执行
return;
}

接下来就显示错误信息:

前台显示错误信息要引用jqurey:

<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script>

<script src="~/Content/jquery.validate.unobtrusive.min.js"></script>

第一个jqurey可以直接使用复制使用:

第二个提供下载地址:https://download.csdn.net/download/weixin_61229532/31829996

显示错误信息:

//这是用户名的错误信息 
@Html.ValidationMessageFor(a => a.Name)
//这是密码的错误信息 
@Html.ValidationMessageFor(a => a.pwd)

可以随意变动要显示错误信息的位置。

tips:C#mvc中可以使用@Html.TextBoxFor(a => a.Name)来代替文本框“a => a.Name”就是文本框的value值:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值