关于ValidationSummary,也就是mvc的客户端错误验证的理解

思路

在对象初始化的时候进行的错误验证,mvc是viewdate传递的,而接收的时候如果是以表单提交,表单所有数值均是对象的属性的时候,在属性初始化的时候会进行判断的,具体步骤如下


第一步,在对象中增加

[MetadataType(typeof(SYS_autoan))]
    public partial class autoan  //这个是与对象相同的名字,对象名字要是autoan
    {
        class SYS_autoan
        {
            [Display(Name = "关键字z")]
            [Required(ErrorMessage = "请输入关键字,提问者提问关键字.")]
            [StringLength(20, ErrorMessage = "输入内容过长.")]
            public string keywords { get; set; }

            [Display(Name = "输入回复")]
            [Required(ErrorMessage = "请输入回复,")]
            [StringLength(2000, ErrorMessage = "输入内容过长.")]
            public string content { get; set; }            [DisplayName("密码")]
            [Required(ErrorMessage = "密码不能为空")]
           [DataType(DataType.Password)]
           public string Password { get; set; }         [RegularExpression(@"^\d+$", ErrorMessage = "排序号必须是大于0的数字")]
           [Range(0,100000)]
            public int? SORT_NUM { get; set; }  [Required(ErrorMessage="请填写手机号,手机号仅仅用于关联老师的微信号")]
            [RegularExpression(@"^1\d{10}$",ErrorMessage="必须是1起始的,11位数字")]
            public string CELL_NO { get; set; }
           [RegularExpression(@"^\d+$", ErrorMessage = "请选择一个科室,不支持录入科室")]
            [Required(ErrorMessage = "请选择科室")]
            public string S_ORG_ID { get; set; }
}}


作为model的一部分,也是验证, 其中

Display 前台是 @Html.LabelFor(model => model.keywords) 出现的

ErrorMessage  是 @Html.ValidationMessageFor(model => model.keywords),

 [DataType(DataType.Password)] 是可以进行类型筛选的

 [StringLength(2000, ErrorMessage = "输入内容过长.")]   对长度进行筛选

[RegularExpression(@"^\d+$", ErrorMessage = "请选择一个科室,不支持录入科室")]     正则


第二步,在 action中应该如下设置

    //默认的
        public ActionResult addauto()
        {
            return View();
        }


  //提交过来的
        [HttpPost]
        public ActionResult addauto(MODEL.autoan nr)
        {
            if (ModelState.IsValid)
            {
                string aa = "";//在这里是需要做的操作
            }
         
            //ModelState.AddModelError("keywords", "提供的用户名或密码不正确。");可以任意增加错误提示给指定错误提示
        
            return View(nr);
        }


第三步,在 view中应当如下配置

头部

@model MODEL.autoan   //强制类型
@{
    Layout = null;
    Html.EnableClientValidation(true);  //开启客户端验证
}
< !DOCTYPE html>
。。。。。


中间部分

 @using (Html.BeginForm("addauto", "admin", FormMethod.Post))
        {
             @Html.ValidationSummary(true)                             //这里是只显示模型及错误,这个错误通过ModelState.AddModelError("", "提供的用户名或密码不正确。");定义,注意定义的关键字需要为空,有关键字会不显示
                @Html.ValidationMessageFor(model => model.keywords)    //在错误ErrorMessage提示中的提示
                      ------ @Html.LabelFor(model => model.keywords)    //在错误Display提示中的提示    <input type="submit" value="提交" />  }



经过以上设置就可以了

更多参考资料 http://www.oschina.net/question/565065_68411

http://www.oschina.net/question/565065_68411

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值