2013-03-25 102 views
1

即时通讯使用jQuery的移动以及添加到乐趣。 我想做的只是做一个帖子,并保持在同一页面,但即时通讯被重定向到登录页面,弹出作品,但我最终在登录页面。如何处理Ajax响应与MVC4

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'功能。我有一种感觉是从按钮或锚点调用,你试图通过'success'回调中的'return false'语句来阻止defautl动作(顺便说一句,“success”在不同的范围内被调用,所以'return假'不会导致'UpdateClient'返回false - 这个函数在调用'success'回调之前就会退出。 – tpeczek 2013-03-25 12:22:50

+0

2013-03-25 12:42:52

回答

1

你似乎从成功的AJAX回调中返回false,但这没有任何意义。它看起来像你从某种形式的提交按钮调用这个UpdateClient函数。确保您从此函数返回false以取消默认操作。例如:

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

,然后返回从函数本身错误:

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

仍然遇到同样的问题 – 2013-03-25 12:48:44