C# ASP.NET Core点击_Layout.cshtml中Products标签跳转404路由问题
错误原因
asp-action属性仅支持传入Action方法的名称,你填写了Products/List带斜杠的路径,框架会把斜杠识别为Action名称的一部分,自动转义为%2F- 你同时给
asp-controller赋值为Home,框架会去HomeController中查找名为Products/List的Action,自然找不到对应方法返回404
手动输入地址可正常访问是因为符合你配置的默认路由规则{controller=Home}/{action=Index}/{id?},会自动匹配到ProductsController下的List方法,和锚点标签生成的错误路径无关。
修复方案
直接修改_Layout.cshtml中Products对应的导航项代码即可:
<li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Products" asp-action="List">Products</a> </li>
如果HomeController中多余的ProductsAction没有其他用途,建议删除避免后续路由混淆。
内容的提问来源于stack exchange,提问作者Otto Rahn
相关产品推荐
相关产品推荐

