ModelState.AddModelError使用

ModelState.AddModelError使用

大家好,又见面了,我是全栈君。

后台:ModelState.AddModelError("userPwd", "请输入密码!");
ModelState是一个字典类型,这句话的作用是向ModelState中添加一条错误信息,第一个参数是Key,第二个参数是Value。


前台:Html.ValidationMessage(key) 或 Html.ValidationSummary() 来显示


对于什么时候使用ModelState.AddModelError(模型错误)的思考与总结:
针对马拉松赛事:
(1)当前的赛事是否存在
 var eventMessage = _eventSystemMessageService.GetAllEventSystemMessages().FirstOrDefault(x => x.EventName == currentEventName);  //查询出该条数据
                if (eventMessage == null)//判断是否存在
                {
                    string no_NowEvent = _localizationService.GetResource("Event.EventRegister.No_NowEvent");   //进行语言转换
                    ModelState.AddModelError("", no_NowEvent);//"不存在当前赛事"
                    InitRegisterModel(model);
                    return View(model);
                }

(2)证件号码是否存在

 var rms = _registratorMessageService.GetAllRegistratorMessages();  //所有数据

                var entity = rms.FirstOrDefault(r => r.RegistratorDocumentNumber == model.RegistratorDocumentNumber);//通过输入的数据与数据库的数据匹配得出一条数据
                if (entity != null)
                {
                    string hadDocumentNumber = _localizationService.GetResource("Event.EventRegister.HadDocumentNumber");
                    ModelState.AddModelError("", hadDocumentNumber);//"证件号码已存在"
                    InitRegisterModel(model);
                    return View(model);
                }

 

(3)手机号码是否存在

                var phoneValidEnity = rms.FirstOrDefault(r => r.RegistratorPhone == model.RegistratorPhone);//针对手机号查询数据
                if (phoneValidEnity != null)
                {
                    string hadPhoneNumber = _localizationService.GetResource("Event.EventRegister.PhoneNumber");
                    ModelState.AddModelError("", hadPhoneNumber);//"手机号码已存在"
                    InitRegisterModel(model);
                    return View(model);
                }

(4)邮箱地址(号码)是否存在

 var emailEntity = rms.FirstOrDefault(x => x.RegistratorEmail == model.RegistratorEmail);//通过邮箱查询匹配数据
                if (emailEntity != null)
                {
                    string yourEmailIsUsed = _localizationService.GetResource("Event.EventRegister.YourEmailIsUsed");
                    ModelState.AddModelError("", yourEmailIsUsed);//"该邮箱地址已被使用,请使用其他邮箱地址"
                    InitRegisterModel(model);
                    return View(model);
                }

 

(5)生日不准确

  try
                {
                    Enmodel.RegistratorBirth = new DateTime(model.DateOfBirthYear, model.DateOfBirthMonth, model.DateOfBirthDay);
                }
                catch
                {
                   
                    string birthDayWrong = _localizationService.GetResource("Event.EventRegister.birthDayWrong");
                    ModelState.AddModelError("", birthDayWrong);// "生日输入不正确"
                    return

…….

总的来说:对于使用模型错误是根据需求来定的,主要起验证作用。

使用场景:

(1)注册时

(2)找回密码时

posted on
2017-03-10 16:30
WFaceBoss 阅读(
) 评论(
)
编辑
收藏

转载于:https://www.cnblogs.com/wfaceboss/p/6531355.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108629.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月1日 下午9:00
下一篇 2022年3月1日 下午9:00


相关推荐

  • JavaScript算法题整理

    JavaScript算法题整理1.获得两个数相除的商和余数console.log(10/3);//商:3.3333console.log(10%3);//余数:1//获得两个数相除的商和余数console.log(Math.floor(10/3));//13//Math.floor(向下取整)、Math.ceil(向上取整)、round(四舍五入)console.log(0.1+0.2);//在js中,尽量避免做小数点运算//如果有小数位的运算varsum=(0.1*100+0.2*100)/100;c

    2022年6月14日
    35
  • pycharm 自动补全代码提示前符号f,m , p,c,v是什么意思?

    pycharm 自动补全代码提示前符号f,m , p,c,v是什么意思?nbsp nbsp nbsp 是自动补全的变量的类别 f function 函数 p parameter 参数 m method 方法 c class 类 v variable 变量

    2026年3月17日
    2
  • java 反编译器_Java反编译工具

    java 反编译器_Java反编译工具xjad反编译工具下载使用反编译时把class文件直接拖拽至工具内即可,如果反编译结果不对时把class文件重新去拿原始的不要编辑打开,或者放在一个文件夹内在试。反编译后的代码没有注释、注解等,反正能用得细心看看调整。点击下载工具http://a.xzfile.com/down2/XJadfanbinayi_downcc.zip…

    2022年8月19日
    7
  • bt种子php啥格式的,bt种子是什么意思(bt种子的格式及文件结构)

    bt种子php啥格式的,bt种子是什么意思(bt种子的格式及文件结构)-文字稿-如果你想要下载一集不存在的回形针视频,你会怎么做?最简单的方法当然是找一个有资源的哥们——每羊,让他把这期视频发给你。早期互联网,大家就是这么共享文件的,但是这样也有很多问题。比如下载的人一多,每个人分配到的带宽就变小了,下载速度会变慢。更危险的是,这期视频是敏感资源,你的哥们本来就不应该分享给你,如果每羊被抓了,大家也都别下载了。针对这些问题,美国工程师BramCohen在20…

    2025年5月26日
    5
  • VS2015无法解析外部符号

    VS2015无法解析外部符号在使用VS编辑C++时,遇到了无法解析外部符号的错误严重性代码说明项目文件行错误LNK2019无法解析的外部符号"public:__thiscallEmployee::Employee(void)"(??0Employee@@QAE@XZ),该符号在函数"public:__thiscallmanager::manager(int,classstd::bas…

    2022年6月28日
    30
  • Idea激活码永久有效Idea2020.1.3激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2020.1.3激活码教程-持续更新,一步到位Idea激活码永久有效2020.1.3激活码教程-Windows版永久激活-持续更新,Idea激活码2020.1.3成功激活

    2022年6月17日
    282

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号