如何在 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 控制器方法发送模型