有没有办法同步调用PageMethods?

6 javascript vb.net asp.net asynchronous pagemethods

我正在尝试这样做:

function DelBatch()
{var userInfo = get_cookie("UserInfo");
PageMethods.DeleteBatchJSWM(userInfo, function(result)
                                          {window.location = "BatchOperations.aspx";});
}
Run Code Online (Sandbox Code Playgroud)

但它仍然以异步方式运行.我需要浏览器实际上等到我的代码隐藏完成执行,然后才能刷新

有一个列表框加载了刚刚从数据库中删除的值,它们不应该是可见的.我遇到的问题是在执行代码隐藏之前窗口位置刷新,似乎没有任何内容被删除给用户.

Jam*_*ack 11

用jQuery ajax调用它?它有一个选项(async),您可以在其中选择同步/异步模式:http://api.jquery.com/jQuery.ajax/

这篇优秀的文章告诉你如何从jQuery调用PageMethods:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

基本上,您需要做的就是:

$.ajax({
  type: "POST",
  async: false,
  url: "yourpage.aspx/DeleteBatchJSWM",
  data: "{ put json representation of userInfo here }",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    window.location = "BatchOperations.aspx";
  }
});
Run Code Online (Sandbox Code Playgroud)

查看Crockford的JSON stringify以获取json格式化解决方案.