MVC - 在下载文件之前和之后加载屏幕/禁用按钮

时间:2015-06-05 09:10:36

标签: javascript c# jquery asp.net-mvc-4 download

所以我有一个下载csv文件的按钮。按钮简单:

$("#btnExportToContactList").click(function (e) {
    window.location.href = '/Home/ExportList';
});

我的动作只是返回一个

File(new System.Text.UTF8Encoding().GetBytes(csv), "text/csv", filename);

一切都很好。现在,因为我在按下按钮时构建了一个csv,并且因为这个过程可能需要一些时间,所以我想建立一个加载屏幕或者只是在等待时禁用按钮。我的问题是如何禁用/启用按钮?

我尝试过以下操作,但它不起作用,因为浏览器被重定向到另一个页面,它将停止执行我的Javascript。

$("#btnExportToContactList").click(function (e) {
    $("#btnExportToContactList").attr("disabled", true);
    window.location.href = '/Home/ExportList';
    $("#btnExportToContactList").attr("disabled", false);
});

但它不起作用。有人有解决方案吗?

1 个答案:

答案 0 :(得分:0)

每次页面准备好或加载时,您都可以将disabled属性设置为false

$(function(){
   $("#btnExportToContactList").attr("disabled", false);

  $("#btnExportToContactList").click(function (e) {
    $("#btnExportToContactList").attr("disabled", true);
    window.location.href = '/Home/ExportList';
  });
});

更新:如果以上不起作用,您可以尝试这样的解决方法。而不是调用window.location.href,您可以使用ajax请求调用控制器的操作并返回包含在服务器上创建的文件的url的json resullt,然后在ajax调用成功时,您可以使用一些javscript代码下载此文件,然后更改所需的元素&# 39; s残疾人财产。

选中more