【发布时间】:2014-05-06 15:12:16
【问题描述】:
我在兜圈子,似乎无法从 Stack 或 Google 上当前可用的资源中找出解决方案。一定有一些明显的东西我错过了,也许你能帮忙?
故事摘要:
- 单击时会启动一个 javascript 函数,并在我们的数据库中创建一个新联系人。
- 然后在成功创建后调用其他函数,以根据一些复选框在必要时切换某些设置。
- 目前正在异步进行调用,导致只有最后一次函数调用才能成功更新联系人。
- 我这辈子都不能接到一个接一个上班的电话。
- 每次调用都会在成功完成后返回一个 JsonResult,如果这有帮助的话(应用程序的其他区域需要。
代码目前如下所示:
function CreateClicked(){
Contact.Create(**bunch of params**, function(data){
if(data.success) {
togglePrimary(data.newId);
toggleBilling(data.newId);
toggleTechnical(data.newId);
toggleBalance(data.newId);
toggleSecurity(data.newId);
toggleMarketing(data.newId);
Modal.Load(**loads a modal view**);
}
}
}
切换功能如下所示:
function togglePrimary(id) {
if ($("#contact_admin_primaryrole").prop('checked'))
{Contact.TogglePrimaryRole(id);}
}
调用如下所示的控制器函数:
public JsonResult TogglePrimaryRole(int contactId){
try{
var c = new Contact(contactId);
c.IsPrimaryContact = !c.IsPrimaryContact;
c.Update(AuthenticatedUser.Username, !c.IsPrimaryContact);
return Json(JSONResponseFactory.SuccessResponse("Contact updated successfully"));
}
catch (Exception ex){
return Json(JSONResponseFactory.ErrorResponse(ex.Message));
}
}
我应该如何进行设置,以使每个切换功能在前一个功能完成并返回 Json 响应之前不会启动,无论成功与否?
有什么想法吗?
干杯, 德兹
【问题讨论】:
标签: javascript json asp.net-mvc-3 asynchronous synchronous