2012-05-19 3 views
2

MVC 3에서 원격 데이터 주석을 처음 사용하려고합니다. 나는 간단한 것을 놓치고 있습니다. 설정이 컨트롤러 동작을 전혀 실행하지 않고 문제를 직접보고 있지 않습니다.mvc 원격 유효성 확인이 실행되지 않음

고유성을 위해 사용자 이름의 유효성을 검사하려고합니다.

다음은 코드 설정입니다.

보기 코드

@Html.Raw(Html.Script("jquery.validate.min.js")) 
@Html.Raw(Html.Script("jquery.validate.unobtrusive.min.js")) 

<tr> 
      <td class="editor-label">@Html.LabelFor(model => model.UserName):</td> 
      <td class="editor-field">@Html.EditorFor(model => model.UserName)</td> 
      <td>@Html.ValidationMessageFor(model => model.UserName)</td> 
     </tr> 

뷰 모델 코드

[DisplayName("Username")] 
    [StringLength(100)] 
    [Remote("CheckIfUsernameExists", "UserProfile", ErrorMessage = "This username is taken. Please enter a different user name.")] 
    public string UserName { get; set; } 

컨트롤러 코드

[HttpGet] 
     public JsonResult CheckIfUsernameExists(string userName) 
     { 
      return Json("false"); 
     } 
+0

를 작동해야 문자열의 길이에 대한 클라이언트 검증 발사입니까? – Rafay

+0

다른 옵션은 다음에서 찾을 수 있습니다. http://stackoverflow.com/a/37366502/4146766 –

답변

1

당신이 설정을 확인, 클라이언트 검증과 눈에 거슬리지는

를 사용하도록 설정해야합니다 그와 8,

다음 코드

[Get] 
    public JsonResult CheckIfUsernameExists(string userName) 
    { 
     return Json(false,JsonRequestBehavior.AllowGet); 
    } 
+0

동일한 .cs 파일에서 2 개의보기 모델을 갖고 있으며 잘못된 viewmodel에 데이터 주석이 있습니다. 코드가 예상대로 작동합니다. 감사합니다. – Matt

관련 문제