呼叫终止前调用 AJAX 成功
2018-01-20
55
我正在编写一个通过 jQuery 和 Ajax 删除城镇的方法。这是我的代码:
<button class="btn btn-danger btn-sm" onClick="deleteTown(@item.TownId)"><i class="fa fa-trash"></i></button></a>
删除城镇方法:
function deleteTown(townId) {
console.log(townId);
$.ajax({
type: "POST",
url: "/Tenant/DeleteTownCritera",
dataType: "json",
async : false,
data: { Id: townId, TenantId: @Request.QueryString["tenantId"] },
success: processDeleteTownResult()
});
}
成功方法:
function processDeleteTownResult(data) {
console.log(data);
if(data.Success == 1)
{
$("#town" + townId).remove();
}
}
控制器:
[HttpPost]
public JsonResult DeleteTownCritera(CriteriaInput input)
{
TenantLogic logic = new TenantLogic();
var x = logic.DeleteTownCritera(input);
return Json(x, JsonRequestBehavior.AllowGet);
}
发生了什么?
我在控制器上设置了一个断点。
本质上,我点击了名为 deleteTown 的按钮。
控制台记录城镇 ID。
控制台记录未定义。
控制台错误:未捕获 TypeError:无法读取未定义的属性“Success”。
然后使用正确的 TownId 和 TenantId 命中控制器。
对于为什么成功方法在 ajax 调用之前终止,您有什么建议吗?
谢谢, Dan
2个回答
之所以调用它,是因为您在此处添加了括号:
success: processDeleteTownResult()
替换为:
success: processDeleteTownResult
或者
success: function(response){processDeleteTownResult(response);}
(如评论中所建议)
Erresen
2018-01-20
首先获取响应,然后您需要通过传递此响应作为参数来调用您的函数:-
success: function(response){
processDeleteTownResult(response);
}
Death-is-the-real-truth
2018-01-20