C# 使button类处于禁用状态的标记
我有一个像下面这样的标签C# 使button类处于禁用状态的标记,c#,html,asp.net-core,tags,C#,Html,Asp.net Core,Tags,我有一个像下面这样的标签 <a class="button button-3d button-rounded btn-success" asp-page-handler="Download"> <i class="fa fa-download"></i> </a> 使用处理程序: public async Task<FileResult> OnGetDownload
<a class="button button-3d button-rounded btn-success" asp-page-handler="Download">
<i class="fa fa-download"></i>
</a>
使用处理程序:
public async Task<FileResult> OnGetDownloadAsync()
{
return File(await export.ExportAsync(), MediaTypeNames.Application.Octet, fileName + ".xlsx");
}
公共异步任务OnGetDownloadAsync()
{
返回文件(等待export.ExportAsync(),MediaTypeNames.Application.Octet,文件名+“.xlsx”);
}
export.ExportAsync调用有时可能很长。因此,我想在系统工作时禁用该按钮。我怎样才能做到这一点?谁能帮帮我吗?
谢谢@Karney。这对我帮助很大。你能再帮我一件事吗?我下载的文件名不是相同的文件名+“.xlsx”。它只是一个GUID。我不知道为什么。好的,不客气。添加xhr.getResponseHeader('Content-Disposition')
要获取文件名,我已经添加了方法,您可以参考它。
<button onclick="tap()" id="mybtn" class="btn-primary ">click</button>
@section Scripts{
<script>
function tap() {
$('#mybtn').attr("class", "disabled");
var url = '/?handler=Download';
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = "blob"; // return type:blob
xhr.onload = function (data, textStatus, request) {// finish request
if (this.status === 200) {
$('#mybtn').attr("class", "btn-primary");
var blob = this.response;// get the return value
var a = document.createElement('a');
var fileName = xhr.getResponseHeader('Content-Disposition').split(";")[1].split("=")[1];
a.download = fileName
a.href = window.URL.createObjectURL(blob);
a.click();
}
};
// send request
xhr.send();
}
</script>
}