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

ASP.NET站点新增上传文件删除功能:基于现有代码实现求助

实现代码

1. 新增HomeController删除动作方法

在现有HomeController的Download方法下方添加如下代码即可:

// 仅管理员有权限删除文件
[Authorize(Roles ="Admin")]
public IActionResult Delete(string filename)
{
    if (string.IsNullOrEmpty(filename))
    {
        TempData["Message"] = "文件名不能为空";
        return RedirectToAction(nameof(Index1));
    }
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "upload", filename);
    if (System.IO.File.Exists(filePath))
    {
        System.IO.File.Delete(filePath);
        TempData["Message"] = "文件删除成功";
    }
    else
    {
        TempData["Message"] = "要删除的文件不存在";
    }
    return RedirectToAction(nameof(Index1));
}

2. 修改Index1视图,添加删除按钮

找到视图中循环输出文件列表的<li>标签部分,修改为如下代码:

<li>
    <a asp-action="Download"
       asp-route-filename="@item.Name">
        @item.Name
    </a>
    @* 仅管理员可见删除按钮 *@
    @if (User.IsInRole("Admin"))
    {
        <a asp-action="Delete" 
           asp-route-filename="@item.Name" 
           style="margin-left:20px;color:red;" 
           onclick="return confirm('确定要删除该文件吗?')">
            删除
        </a>
    }
</li>

同时把原有显示上传成功的ViewBag.Message改成TempData["Message"],保证删除后的提示也能正常显示:

@if (TempData["Message"] != null)
{
    <div class="alert alert-success" style="margin-top:50px">
        @TempData["Message"]
    </div>
}

内容的提问来源于stack exchange,提问作者Panait Rares Horia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:30:00