ASP.NET文件管理项目如何实现显示全部已上传文件功能
实现方法
1. 确认控制器逻辑
首先确保HomeController中的Index动作方法支持可选分类参数,无参数传入时返回全部文件,参考逻辑如下:
public IActionResult Index(string id = null) { var allFiles = _context.Files.AsQueryable(); // 有分类参数时按分类筛选 if (!string.IsNullOrEmpty(id)) { allFiles = allFiles.Where(f => f.Category == id); } return View(allFiles.ToList()); }
如果你当前已经实现了该逻辑无需修改,保持原有代码即可。
2. 视图添加「显示全部」按钮
在现有分类导航的ul列表中新增一个不带id参数的Index跳转链接即可,找到视图中对应代码段:
<ul> <li class="active">@Html.ActionLink("Incepator", "Index", "Home", new { id = "incepator" })</li> <li class="active">@Html.ActionLink("Intermediar", "Index", "Home", new { id = "intermediar" })</li> <li class="active">@Html.ActionLink("Admin", "Index", "Home", new { id = "admin" })</li> </ul>
修改后添加「显示全部」项:
<ul> <li class="active">@Html.ActionLink("显示全部", "Index", "Home")</li> <li class="active">@Html.ActionLink("Incepator", "Index", "Home", new { id = "incepator" })</li> <li class="active">@Html.ActionLink("Intermediar", "Index", "Home", new { id = "intermediar" })</li> <li class="active">@Html.ActionLink("Admin", "Index", "Home", new { id = "admin" })</li> </ul>
点击「显示全部」时不会携带分类id参数,控制器会返回全部文件,即可恢复初始展示状态。
可选优化:动态高亮当前分类
如果需要让当前选中的分类高亮显示,可根据路由参数动态控制active类:
<ul> <li class="@(ViewContext.RouteData.Values["id"] == null ? "active" : "")">@Html.ActionLink("显示全部", "Index", "Home")</li> <li class="@(ViewContext.RouteData.Values["id"]?.ToString() == "incepator" ? "active" : "")">@Html.ActionLink("Incepator", "Index", "Home", new { id = "incepator" })</li> <li class="@(ViewContext.RouteData.Values["id"]?.ToString() == "intermediar" ? "active" : "")">@Html.ActionLink("Intermediar", "Index", "Home", new { id = "intermediar" })</li> <li class="@(ViewContext.RouteData.Values["id"]?.ToString() == "admin" ? "active" : "")">@Html.ActionLink("Admin", "Index", "Home", new { id = "admin" })</li> </ul>
额外提示
你现有上传表单中的methord="post"拼写有误,建议修改为method="post",避免上传功能出现异常。
内容的提问来源于stack exchange,提问作者Panait Rares Horia
相关产品推荐
相关产品推荐

