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