技术:c# .net  采用mvc框架,实现model的数据验证。

刚开始觉得数据验证很方便,可以判断非空、数据正确性,但是后来发现很多需要数据库的判定还是需要post请求做,但是就想mvc的数据验证是否可以做到同样的功能,示例如下。


一:Model 层调用Post 方法数据验证

     

using System.Web.Mvc;
//我用的是4.0000
     /// <summary>
/// 手机号
/// </summary>
[Required(ErrorMessage = "手机号不能为空!")]
[RegularExpression("[0-9]{11,11}", ErrorMessage = "手机号格式错误!")]
[System.Web.Mvc.Remote("CheckGuestMobile", "CRM", "CommercialTenant", HttpMethod = "post", ErrorMessage = "手机号已存在")]
public string Mobile { get; set; }
    /// <summary>
/// 判断客户手机号是否重复
/// </summary>
/// <param name="mobile"></param>
/// <returns>True 已有此手机号</returns>
[HttpPost]
public ActionResult CheckGuestMobile(string mobile)
{
if (this.CRMService.CheckGuestMobile(mobile, this.LoginInfo.CommercialTenantID))
{
return Content("false");
}
else
{
return Content("true");
}
}

  ps:这个只是前段验证,但是关键数据要在后端再做验证

  这个post方法为false时不需要返还bool 可以直接返还ErrorMessage

 public JsonResult CheckUserName(string userName)
{
if (IsUniqueName(userName) && IsForbiddenName(userName))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
else if (!IsUniqueName(userName))
{
return Json("用户名不唯一!", JsonRequestBehavior.AllowGet);
}
else
{
return Json("用户名不包含违禁词!", JsonRequestBehavior.AllowGet);
}
}

二:基本方法

  1、Required-必填选项,当提交的表单缺少该值就引发验证错误。

        /// <summary>
/// 姓名
/// </summary>
[DisplayName("姓名")]
[Required(ErrorMessage = "姓名不能为空!")]
public string Name { get; set; }

  2、StringLength

[StringLength()]  //最大长度不超过20个字符 
public string name { get; set; }
[StringLength(20,MinimumLength=3)]  //最大长度不超过20个字符,最短不能低于3个字符
public string password { get; set; }

  3、RegularExpression-正则表达式能够匹配的字符串,如果不能匹配,则报一个验证错误

[RegularExpression(@"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "请输入正确的电子邮箱地址!")]
public string email{ get; set; }

  4、Range-用来指定数值类型值的最小值和最大值。

[Range(35,44)]    //整型,最小35,最大44
  [Range(typeof(decimal),"0.00","49.99")] //decimal类型

  5、Remote-允许利用服务器端的回调函数执行客户端的验证逻辑。说白了就是支持AJAX验证。

  细则如上所示

  6、Compare-用于确保模板对象的两个对象拥有相同的值。

[Compare("要对比的属性名")]
[Compare("Money")]
public decimal price { get; set; }

  以上特性需要 using System.ComponentModel.DataAnnotations;

  同时需要注意Web.config里面的这两个选项是否设置为了true;

    <add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

后面如果有好的方法再说。

最新文章

  1. (转)System.Drawing.Color的颜色对照表
  2. 20145208 《Java程序设计》第0周学习总结
  3. editplus的配置和使用
  4. TCP程序设计
  5. jQuery技术内幕电子版4
  6. ural 1494 Monobilliards
  7. 关于VS2008中的targetver.h文件
  8. Java线程:新特征-有返回值的线程
  9. 前端三剑客:html,css,JavaScript
  10. hive的常见判断与抽样函数
  11. django rest_framework 分页出现报错
  12. 网络:LVS负载均衡原理
  13. 添加setuptools脚本
  14. ESXi 6.5 总是会话超时
  15. POJ1860 Currency Exchange【最短路-判断环】
  16. java8时间类
  17. linux五大搜索命令学习
  18. opencv3 学习四 - 图像减色
  19. cmake笔记
  20. JDBC_事务概念_ACID特点_隔离级别_提交commit_回滚rollback

热门文章

  1. C# EF更新当前实体报错 ObjectManager无法管理具有相同键值的多个对象
  2. 2012全球SEO行业调查报告
  3. 测试-一个unity的编译bug,初始化器
  4. 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
  5. makefile之命令包&amp;多行变量
  6. 利用jquery的contains实现搜索功能
  7. 最大子矩阵 hdu1081
  8. Spark Standalone与Spark on YARN的几种提交方式
  9. yum安装的JDK的没有配置环境变量但是在/usr/bin下面都做了软链接
  10. 为什么 MongoDB 连接数被用满了?