Whe*_*els 5 javascript c# jquery download asp.net-mvc-4
所以我有一个下载csv文件的按钮.按钮简单:
$("#btnExportToContactList").click(function (e) {
window.location.href = '/Home/ExportList';
});
Run Code Online (Sandbox Code Playgroud)
我的动作只是返回一个
File(new System.Text.UTF8Encoding().GetBytes(csv), "text/csv", filename);
Run Code Online (Sandbox Code Playgroud)
一切都很好.现在,因为我在按下按钮时正在构建一个csv,因为这个过程可能需要一些时间,所以我想建立一个加载屏幕或者只是在等待时禁用按钮.我的问题是如何禁用/启用按钮?
我尝试了以下但它不起作用,因为浏览器被重定向到另一个页面,它将停止执行我的Javascript.
$("#btnExportToContactList").click(function (e) {
$("#btnExportToContactList").attr("disabled", true);
window.location.href = '/Home/ExportList';
$("#btnExportToContactList").attr("disabled", false);
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有人有解决方案吗?
您可以在每次页面准备好或加载时设置disabled属性。false
$(function(){
$("#btnExportToContactList").attr("disabled", false);
$("#btnExportToContactList").click(function (e) {
$("#btnExportToContactList").attr("disabled", true);
window.location.href = '/Home/ExportList';
});
});
Run Code Online (Sandbox Code Playgroud)
更新:如果上述不起作用,您可以尝试这样的解决方法。您可以使用 ajax请求window.location.href调用控制器的操作,并返回包含在服务器上创建的文件的 url 的 json 结果,然后在 ajax 调用成功后,您可以使用一些 javscript 代码下载此文件,然后更改所需元素的禁用属性,而不是调用控制器的操作。
检查此以了解更多信息