2013-03-25 1 views
1

jquery 모바일을 사용하여 재미있게 보냅니다. 내가하고 싶은 일은 단순히 게시물을 작성하고 동일한 페이지에 머물러 있지만 로그인 페이지로 리디렉션되는 경우 팝업이 작동하지만 로그인 페이지로 끝납니다.MVC4를 사용하여 Ajax 응답을 처리하는 방법

function UpdateClient(data) { 
       var baseUrl = '@Url.Action("MobileAppointmentEdit")'; 
       $.ajax({ 
        url: baseUrl, 
        type: 'POST', 
        data: {Id:'@Model.Id' }, 
        success: function(response) { 
         $("#popupSaved").popup(); 
         return false; 
        } 
       }); 
      } 

[HttpPost] 
     public ActionResult MobileAppointmentEdit(MobileAppointment appointment) 
     { 
      if (appointment !=null) 
      { 

//Do stuff 

      } 

      return null; 
     } 
+0

당신이 UpdateClient' 기능'호출 할 방법을 우리에게 보여줄 수 :

<input type="submit" value="Save" onclick="return UpdateClient();" /> 

한 다음 함수 자체에서 false를 돌려줍니다. 버튼이나 앵커에서 호출되는 느낌이 들었고'success' 콜백에서'return false' 문을 사용하여 defautl 액션을 막으려 고합니다. ('성공'이 다른 범위에서 호출되기 때문에'return false'는'UpdateClient'가 false를 리턴하지 않을 것입니다 -이 함수는'success' 콜백이 호출되기 전에 오랫동안 종료됩니다). – tpeczek

+0

답변

1

성공 AJAX 콜백에서 false를 반환하는 것처럼 보일 수도 있지만 이는 의미가 없습니다. 어떤 형태의 제출 버튼에서이 기능을 UpdateClient 기능이라고 부르는 것 같습니다. 기본 동작을 취소하려면이 함수에서 false를 반환해야합니다. 예를 들어 :

function UpdateClient(data) { 
    var baseUrl = '@Url.Action("MobileAppointmentEdit")'; 
    $.ajax({ 
     url: baseUrl, 
     type: 'POST', 
     data: { id: '@Model.Id' }, 
     success: function(response) { 
      $("#popupSaved").popup(); 
     } 
    }); 

    return false; // <!-- here, that's the important bit 
} 
1

뭔가

function UpdateClient(data) { 
       var baseUrl = '@Url.Action("MobileAppointmentEdit")'; 
       $.ajax({ 
        url: baseUrl, 
        type: 'POST', 
        dataType:'json' 
        data: {Id:'@Model.Id' }, 
        success: function(response) { 
        if(response.Success) 
        { 
         $("#popupSaved").popup(); 
        } 
        else{ 
         $("#popupNotSaved").popup();} 

        } 
      }); 
     } 

추천하고 서버 측에서 당신은 반환해야 JsonResult

[HttpPost] 
     public ActionResult MobileAppointmentEdit(MobileAppointment appointment) 
     { 
      if (appointment !=null) 
      { 

      //Do stuff  
      return Json(new {Success = true}); 

      } 

      return Json(new{Success = false}); 
     } 

그것은 실패의 경우에 당신처럼 JSON 개체에 추가 필드를 보낼 수 있음을 주목할 필요가

같은 오류 메시지.

+0

여전히 같은 문제가 발생합니다. –

관련 문제