2014-12-12 7 views
0

유효하지 않은 이메일을받은 후 원격 유효성 검사에 문제가 있습니다. 더 이상 유효하지 않은 오류가 제거되지 않는 이유를 알 수 없습니다. 여기 MVC 원격 유효성 검사 오류가 변경된 후에 유지됨

내 모델입니다 :

[Required(ErrorMessage = "An email is required")] 
[StringLength(150, MinimumLength = 4)] 
[Display(Name = "Email")] 
[RegularExpression("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$", ErrorMessage = "Invalid Email")] 
[Remote("doesEmailExist", "Account", HttpMethod = "POST", ErrorMessage = "This email has already registered. Please use a different email")] 
public virtual string strEmail { get; set; } 

내보기 :

<ul> 
     <li class="editor-label">@Html.LabelFor(m => m.strEmail)</li> 
     <li class="editor-field">@Html.TextBoxFor(m => m.strEmail)</li> 
     <li class="error">@Html.ValidationMessageFor(m => m.strEmail)</li> 
</ul> 

내 컨트롤러 : 왜 원격 유효성 검사에 잘못된 항목에서 진행 자체를 수정하지 않습니다

[HttpPost] 
public JsonResult doesEmailExist(string strEmail) 
    { 

     var user = db.t_user.FirstOrDefault(i => i.email == strEmail); 
     if (user == null) 
      return Json(null); 
     else 
      return Json(false); 

    } 

유효한 항목?

답변

0

귀하의 JsonReturn은 기존 이메일이없는 경우 true (null)을 반환해야합니다. 또한

+0

작품 완벽 지금 [RegularExpression] 속성 대신 [EmailAddress]을 사용할 수있는 GET에게

[HttpGet] public JsonResult doesEmailExist(string strEmail) { var user = db.t_user.FirstOrDefault(i => i.email == strEmail); if (user == null) return Json(true, JsonRequestBehavior.AllowGet); // change this else return Json(false, JsonRequestBehavior.AllowGet); } 

또는

bool exists = db.t_user.Any(i => i.email == strEmail) return Json(!exists, JsonRequestBehavior.AllowGet); 

참고해야 정말이 있습니다. 감사! – Parker3306