繁体   English   中英

如何在MVC应用中使用/处理加载程序?

[英]How to use/handle a loader in an MVC app?

在我当前正在使用的ASP.NET MVC应用程序中,用户可以单击一个页面中的多个位置。 因此,在_layout中有一个主菜单,对于每个单独的页面,都可以有与该页面关联的链接。 我正在尝试使用每次点击都会显示的加载程序,主要是响应需要时间,但现在是每次点击。 例如,在主页中,用户可以从主菜单中单击“学生”,并且当页面完全加载时,加载程序应出现并隐藏。 在学生页面上,可以有一个ajax调用来获取数据并将其绑定到网格。 因此,从用户单击菜单链接到页面加载开始,加载器即处于活动状态/显示状态。 页面完全加载后,它将被隐藏。 网格可以具有编辑功能,并且当用户单击任何CRUD链接时,加载程序应显示和隐藏。

我正在寻找有关实施此要求的建议。 如果我可以连接任何MVC事件,那会很酷,因为我想要更少的Javascript / jQuery东西,但是如果使用Javascript / jQuery,那也很好。

目前我什么都没有,所以任何指针都值得赞赏。

假设正在使用AJAX

我看不到没有使用中间页并使用重定向的方法来保留此服务器端的方法(这将是不必要的膨胀)。 而且,由于您并不反对,因此可以使用jQuery和诸如blockUI之类的方法轻松实现此目标

我将让您尝试将绑定细化为仅关注的链接,但是现在我们假定所有链接。 另外,MVC应该将jQuery用于Ajax.Actionlink之类的Ajax.Actionlink这样我们就可以劫持$.ajaxStart$.ajaxStop类的事件:

function showLoadingScreen(enabled){
  return enabled ? $.blockUI() : $.unblockUI();
}
$(document).ajaxStart(function(){
  showLoadingScreen(true);
}).ajaxStop(function(){
  showLoadingScreen(false);
});

稍后,您可以将类应用于您关心的链接,然后将它们绑定(而不是$.ajaxStart ),但我$.ajaxStart您自己决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM