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
相关产品推荐
相关产品推荐

