可选的$.ajax调用
我的asp.NETMVC3View中有html.actionlink,点击链接时有jquery ajax调用。在我的动作方法中,假设我有:可选的$.ajax调用,ajax,asp.net-mvc-3,jquery,Ajax,Asp.net Mvc 3,Jquery,我的asp.NETMVC3View中有html.actionlink,点击链接时有jquery ajax调用。在我的动作方法中,假设我有: if (a == 2) //return ok return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet); else return Con
if (a == 2) //return ok
return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet);
else
return Content("");
Ajax调用是:
$(function () {
$('#checkExists').click(function () {
$.ajax({
url: $('#checkExists').attr('href'),
global: true,
type: 'GET',
timeout: 5000,
success: function (data) { //invoke when receive response from server
if (data != null && data.Error != '') //return failed
{
alert(data.Error);
}
// else {
// alert('error occurs 1');
// //action ok here
// }
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr + ajaxOptions + "Cannot connect to server to load data"); //sever is not available
},
complete: function () { //ajax done
//alert('complete');
}
});
return false;
});
如果是我调用的ajax,如何停止$.ajax调用?停止ajax调用是什么意思?您已经发送了AJAX调用,它击中了控制器操作。正是这个控制器操作返回了JSON或纯文本。但在现阶段,停止已经做过的事情为时已晚。这就像是试图让某人从死亡中复活。您已经进行了ajax调用,在当前场景中无法撤消它 您可以做的是发送
doNothing
响应
if (a == 2) //return ok
return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet);
else
return Json(new { Message = "do nothing" }, JsonRequestBehavior.AllowGet);
在ajax成功回调中
success:function(data){
if(data.Message==='do nothing'){
// simply do nothing
}
}
jsut作为旁注,您可以在实例化ajax调用之前取消它。请参见下面的答案
更新
if (a == 2) //return ok
return Json(new { Error = "false", Message = "Everything ok" }, JsonRequestBehavior.AllowGet);
else
return Content("");
在成功回调中
success:function(data){
if(!data.Message)
//alert(data); //content will be shown
}
我需要创建两种动作方法吗?@DotnetSparrow,我不知道。这取决于你想做什么。如果创建两个动作,第一个动作确实可以用AJAX调用并返回JSON,而第二个动作可以是返回标准视图或内容的普通ActionLink。我不想要此警报我尝试了更新的代码,在这种情况下,服务器端代码没有执行。页面停止与问题中粘贴的代码相同。。。还有别的问题