Ajax 를 이용 하여 controller 방법 을 호출 하고 파 라 메 터 를 전달 합 니 다.

2493 단어 웹 전단
배경
최근 에 일 을 하면 서 얼굴 인식 기능 과 수강 신청 시스템 을 결합 시 켜 야 하지만 전단 지식 에 대한 이해 가 적어 서 하면 서 배 울 수 밖 에 없 었 습 니 다. 그래서 여기 서 만 나 는 구 덩이 를 설명 하고 저 와 같은 초보 자 에 게 도움 이 되 었 으 면 좋 겠 습 니 다.
2. 구체 적 인 내용
여기 서 프레임 워 크 는 MVC 입 니 다. 페이지 에서 폼 을 제출 하지 않 고 컨트롤 러 와 상호작용 을 하려 면 ajax 로 컨트롤 러 방법 을 호출 하고 매개 변 수 를 전달 하 며 되 돌아 오 는 json 데 이 터 를 처리 할 수 있 습 니 다. 방법 은 다음 과 같 습 니 다.
페이지 코드:
 $.ajax(
    {
           url: '/User/facelog',     //     ,        ,   test.com/home/index/index
           data: JSON.stringify({ stuID: stuID2 }),   //        
           type: 'POST',   //     
           dataType: 'json', //        ,    JSON
           contentType: 'application/json',             
           success: function (result) {
               window.location.href = result.NextUrl;
               msg = result.Msg;
               console.log(result); //           , result      
           },
           error: function () {
               console.log('Send Request Fail..'); //           
           }
       }
   );

컨트롤 러 코드:
 [HttpPost]
 public JsonResult facelog(string  stuID)
    {
       User user = this.UserService.Select((User T) => (T.UserName == stuID) && T.Status == 0);
        if (user != null)
        {
            base.Session["UserInfo"] = user;
            AjaxMsg ajaxMsg = new AjaxMsg()
            {
                Statu = "ok",
                Msg = "    ,      ...",
                NextUrl = "/User/Main"
            };
            return base.Json(ajaxMsg);
        }
        return base.Json(new { Statu = "error", Msg = "       !"});
    }   

여기에 몇 개의 구덩이 가 있 으 니 특별히 설명해 야 한다.
URL 에 '/ 컨트롤 러 / 방법 명' 이 라 고 쓰 여 있 습 니 다. 컨트롤 러 는 컨트롤 러 의 전체 이름 이 아니 라 controller 를 제거 하 는 것 을 말 합 니 다. 여기 제 컨트롤 러 는 User Controller 입 니 다. 그래서 여기 User 를 쓰 십시오. 제 가 이 구 덩이 를 밟 아서 디 버 깅 을 오래 했 습 니 다.
바로 전달 매개 변수 형식 입 니 다. data 에서 전달 하 는 매개 변 수 는 동적 이기 때문에 전역 변수 저장 소 를 정 의 했 습 니 다. 여기 구 덩이 된 곳 은 stuID 2 의 값 은 다른 ajax 요청 에서 얻 었 습 니 다. 그러나 다른 데이터 가 돌아 오지 않 았 을 때 이 ajax 는 이미 실행 되 었 습 니 다. 그래서 저 는 data 가 작성 한 형식 이 틀 렸 다 고 생각 하여 데이터 가 컨트롤 러 에 전달 되 지 못 했 습 니 다 두 번 째 점 을 받 습 니 다. 하나의 ajax 실행 이 끝 난 후에 다른 것 을 실행 하려 면 async: false 를 사용 하면 됩 니 다. 기본 적 인 상황 은 true 입 니 다.
JSON. stringify 는 contentType: 'application / json' 과 함께 사용 해 야 데 이 터 를 잘 전달 할 수 있 습 니 다 데 이 터 를 되 돌려 주 는 것 에 대해 서 는 일반적으로 json 에 대한 분석 이 필요 합 니 다 .

좋은 웹페이지 즐겨찾기