jQuery 및 ASP.NET MVC로 다중 매개 변수 Ajax 양식 검증을 수행하는 올바른 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1615144

문제

주어진 회사 ID에 대해 이메일 주소가 이미 존재하는지 확인 해야하는 웹 사이트의 등록 양식이 있습니다. 사용자에게 이메일 필드를 탭하거나 클릭하면 jQuery가 꺼져서 AJAX 요청을 수행하여 다른 주소를 선택 해야하는 사용자에게 경고 할 수 있습니다.

내 컨트롤러에는 다음과 같은 방법이 있습니다.

public JsonResult IsEmailValid(int companyId, string customerNumber)
{            
  return Json(...);
}

이 작업을 수행하려면 직접 지적하려면 경로를 업데이트해야합니다. /Home/IsEmailValid 그리고 두 매개 변수 {companyId} 그리고 {customerNumber}. 이것은 라우팅 시스템에서 "해킹"하는 것처럼 보이며 아마도 더 깨끗한 대안이 있다고 생각합니다.

이 작업을 수행하는 "적절한"또는 권장 방법이 있습니까?

편집 : 경로에서 내가 의미하는 바는 URL (/home/isemailvalid/{companyId}/{customerNumber})에서 추가 매개 변수 ({CustomerNumber})를 전달하는 것이 기본 경로 매핑과 함께 작동하지 않는다는 것입니다.

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 jQuery 유효성 검사 플러그인 하기 위해서.

다음과 같이 자신의 방법을 구현해야합니다.

$.validator.addMethod("checkCompanyEmail", function(value, element) {
    var email = value;
    var companyID = //get the companyID
    var result;
    //post the data to server side and process the result and return it
    return result;
}, "That company email is already taken.");

그런 다음 유효성 검사 방법을 등록하십시오.

$("#the-form").validate({
   rules: { email: { required: true, "checkCompanyEmail" : true } } 
});

추신. 나는 당신이 왜 그 라우팅으로 "해킹"해야하는지 이해하지 못합니다.

다른 팁

아래의 유효성 검사 문서에서 원격 방법

    remote: {
      url: "check-email.php",
      type: "post",
      data: {
        username: function() {
         return $("#username").val();
        }
      }
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top