如何在 MVC Ajax 中使用 jQuery blockui 插件?

Posted

技术标签:

【中文标题】如何在 MVC Ajax 中使用 jQuery blockui 插件?【英文标题】:How do you use the jQuery blockui add-in with MVC Ajax? 【发布时间】:2010-09-20 04:38:02 【问题描述】:

我一直在这里阅读这篇文章:

http://encosia.com/2008/10/04/using-jquery-to-enhance-aspnet-ajax-progress-indication/

但它想使用以下对象:

Sys.WebForms.PageRequestManager.getInstance()

这在使用 MVC AJAX 代码时不存在。有没有人尝试在 MVC AJAX 的回发结束时挂钩以知道何时解除对 UI 的阻塞?

【问题讨论】:

【参考方案1】:

实际上并没有一种方法可以按预期使用 blockUI 并与服务器进行完整的往返。

如果您使用 jQuery 的 $.ajax() 或 $.getJSON 函数异步处理服务器,您可以在调用之前阻塞,然后在“成功”处理程序中解除阻塞。

【讨论】:

【参考方案2】:

Dave 是对的,没有“MVC”方法可以做到这一点,但您当然可以访问 jQuery 中的 ajax 事件。如果 AJAX 调用在 250 毫秒内返回,“setTimeout”调用允许我们隐藏 blockUI。

$().ajaxSend(function() 
  doLoad = setTimeout(function()  
   $("#divtoblock").block( message: "Loading..." ); , 250);
);

$().ajaxComplete(function() 
  clearTimeout(doLoad);
  $("#divtoblock").unblock();
);

【讨论】:

以上是关于如何在 MVC Ajax 中使用 jQuery blockui 插件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Web MVC 中使用 Ajax JQuery

如何在 jQuery $.ajax() 发布请求中向 MVC 控制器方法发送模型

如何在MVC应用程序中使用Jquery

如何在asp.net mvc中使用jquery ajax在方法中调用字符串

AJAX 和 jQuery 与 MVC

如何从 mvc 控制器获取列表以使用 jquery ajax 查看