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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 护眼的VS2019黑色主题!把 Visual Studio 2019 主题设置为 JetBrains Darcula 主题,类似 Pycharm, CLion, IntelliJ IDEA[通俗易懂]

    护眼的VS2019黑色主题!把 Visual Studio 2019 主题设置为 JetBrains Darcula 主题,类似 Pycharm, CLion, IntelliJ IDEA[通俗易懂]效果如图:全局:C#C++Python:教程1.先安装JetBrainsMonoFont,下载地址https://www.jetbrains.com/lp/mono/2.在VS2019中点击Extensions,然后点击MangeExtensions,寻找ColorThemeEditorforVS2019,下载安装或者在https://marketplace.visualstudio.com/items?itemN…

    2022年6月27日
    355
  • pytest重试_pytest失败重跑

    pytest重试_pytest失败重跑安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月29日
    3
  • pacharm激活码2022【2022最新】

    (pacharm激活码2022)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~CJM5ZJBPHS-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    86
  • UTF-8编码占几个字节?

    UTF-8编码占几个字节?Blog:https://www.jsntian.com占2个字节的:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码占3个字节的:基本等同于GBK,含21000多个汉字占4个字节的:中日韩超大字符集里面的汉字,有5万多个一个utf8数字占1个字节一个utf8英文字母占1个字节少数是汉字每个占用3个字节,多数占用…

    2022年6月26日
    30
  • 分布式数据库CAP原理

    分布式数据库CAP原理分布式数据库CAP原理CAP简介CAP理论CAP总结CAP简介传统的关系型数据库事务具备ACID:(1)A:原子性(2)C:一致性(3)I:独立性(4)D:持久性分布式数据库的CAP:(1)C(Consistency):强一致性“allnodesseethesamedataatthesametime”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新

    2022年5月12日
    34
  • html背景图片拉伸解决办法

    html背景图片拉伸解决办法html背景图片拉伸解决办法body{background-size:100%100%;//关键代码,直接拉伸背景图background-image:url(“img/99.jpg”);//背景图导入background-repeat:no-repeat;//不重复拉伸background-attachment:fixed;//此代码用于页面内容超出屏幕,

    2022年9月28日
    0

发表回复

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

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