无法为<li>标签添加<a>视图链接,点击出现404错误求助
问题分析与解决方法
你遇到的404问题核心原因是ASP.NET框架不允许直接通过URL访问Views目录下的.cshtml视图文件,Views目录默认是受保护的,不能直接作为静态资源访问,必须通过控制器路由或Razor Pages路由来匹配对应的页面。
正确的实现方式
1. 如果你使用的是ASP.NET MVC项目
你需要确保存在对应的控制器和Action方法:
- 首先创建
PowershellController类,里面添加PwrCmtsAction:
public class PowershellController : Controller { public IActionResult PwrCmts() { return View(); // 会自动寻找~/Views/Powershell/PwrCmts.cshtml视图 } }
- 然后在分部视图中使用路由生成链接,而不是直接写物理路径:
方法一:使用Html.ActionLink辅助方法
方法二:使用<li>@Html.ActionLink("Powershell Comments", "PwrCmts", "Powershell")</li>Url.Action生成路由URL<li><a href="@Url.Action("PwrCmts", "Powershell")">Powershell Comments</a></li>
2. 如果你使用的是ASP.NET Core Razor Pages项目
如果PwrCmts.cshtml是Razor页面,建议将其放在Pages目录下(比如/Pages/Powershell/PwrCmts.cshtml),然后使用Url.Page生成链接:
<li><a href="@Url.Page("/Powershell/PwrCmts")">Powershell Comments</a></li>
如果一定要放在Views目录下,需要额外配置路由规则,但不推荐这种做法,因为不符合Razor Pages的目录规范。
关键说明
Views目录的设计是用来渲染控制器Action返回的视图内容,不是直接供用户访问的资源路径,所以直接写~/Views/Powershell/PwrCmts.cshtml这种物理路径必然会返回404错误,必须通过框架的路由机制来映射到对应的处理逻辑。
内容的提问来源于stack exchange,提问作者Jass Sanghera
相关产品推荐
相关产品推荐

