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

ASP.NET Core 6.0 MVC控制器名称链接生成异常问题求助

ASP.NET Core 6.0 MVC导航链接生成异常问题

问题背景

在VS 2022中创建新的ASP.NET Core 6.0 MVC项目,发现导航菜单中某一链接生成异常。项目包含Admin、Finance、Home和Technical控制器。

导航项代码

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Technical" asp-action="Monitoring">Monitoring</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Admin" asp-action="Index">Admin</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Finance" asp-action="Telephony">Finance</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Financ" asp-action="Telephony">Finance</a>
</li>

生成后的HTML

<li b-fcse4o214h class="nav-item">
    <a class="nav-link text-dark" href="/">Home</a>
</li>
<li b-fcse4o214h class="nav-item">
    <a class="nav-link text-dark" href="/Technical/Monitoring">Monitoring</a>
</li>
<li b-fcse4o214h class="nav-item">
    <a class="nav-link text-dark" href="/Admin">Admin</a>
</li>
<li b-fcse4o214h class="nav-item">
    <a class="nav-link text-dark" href="/Telephony">Finance</a>
</li>
<li b-fcse4o214h class="nav-item">
    <a class="nav-link text-dark" href="/Financ/Telephony">Finance</a>
</li>

异常点

前3个链接生成正常,第5个链接因控制器名称拼写错误(Financ而非Finance)生成了错误的URL,但第4个链接的href未包含Finance控制器名称,仅显示/Telephony。


原因分析

这是因为项目中存在优先级更高的自定义路由配置,覆盖了默认的{controller}/{action}路由规则:

  1. 检查Program.cs中的路由配置,是否存在类似以下的自定义路由:
    app.MapControllerRoute(
        name: "TelephonyRoute",
        pattern: "Telephony",
        defaults: new { controller = "Finance", action = "Telephony" }
    );
    
  2. 或者检查FinanceController的Telephony动作方法,是否添加了特性路由:
    [Route("Telephony")]
    public IActionResult Telephony()
    {
        return View();
    }
    

ASP.NET Core的路由系统在生成URL时,会优先匹配更具体、优先级更高的路由模板。当路由系统找到匹配Telephony的直接路由时,就会跳过默认的控制器/动作格式,直接生成/Telephony这个URL。


内容的提问来源于stack exchange,提问作者Iain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:15:43