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)找回密碼時


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM