You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HTML中实现点击按钮自动下载C#文件?

解决点击按钮下载C#文件却显示代码的问题

你的问题出在浏览器对.cs文件的MIME类型识别上——浏览器会把.cs文件当成文本类型直接渲染,即便加了download属性也可能被忽略。下面是两种可行的解决方法:

方法一:后端设置响应头(推荐,适合有后端服务的场景)

让后端在返回.cs文件时,设置强制下载的响应头,告诉浏览器这是需要下载的附件,而非可预览的文本。

以ASP.NET Core为例,控制器中添加下载接口:

public IActionResult DownloadCsFile()
{
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Main.cs");
    var fileBytes = System.IO.File.ReadAllBytes(filePath);
    // 设置Content-Type为二进制流,同时指定下载文件名
    return File(fileBytes, "application/octet-stream", "Main.cs");
}

前端修改a标签指向这个接口:

<a href="/YourController/DownloadCsFile" download="Main.cs"><button type="button"> Download </button></a>

方法二:纯前端Blob处理方案

通过Fetch获取文件内容,转为Blob对象(强制标记为二进制流),再创建临时下载链接触发下载:

<button type="button" onclick="downloadCsFile()"> Download </button>

<script>
function downloadCsFile() {
    fetch('Main.cs')
        .then(res => res.text())
        .then(content => {
            const blob = new Blob([content], { type: 'application/octet-stream' });
            const tempUrl = URL.createObjectURL(blob);
            const link = document.createElement('a');
            
            link.href = tempUrl;
            link.download = 'Main.cs';
            document.body.appendChild(link);
            link.click();
            
            // 清理临时资源
            document.body.removeChild(link);
            URL.revokeObjectURL(tempUrl);
        });
}
</script>

内容的提问来源于stack exchange,提问作者Alex Beam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:02:07