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

Visual Studio MVC项目中如何让链接正确指向控制器并避免路径残留?

解决ASP.NET Core导航链接意外保留Action路由值的问题

你遇到的问题是ASP.NET Core Tag Helper的路由值继承特性导致的:当你没有在<a>标签上显式指定asp-action属性时,Tag Helper会自动沿用当前请求上下文里的路由参数(比如当前页面的action值)。

比如你在Home/Privacy页面时,当前路由的action是Privacy,点击未指定asp-action的Welcome链接时,Tag Helper会把这个action值继承过来,最终生成Welcome/Privacy的URL,而不是预期的Welcome。

解决方法

给Welcome的导航链接显式指定asp-action="Index"即可,修改后的代码如下:

<ul class="navbar-nav flex-grow-1">
    <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="Home" asp-action="Privacy">Privacy</a>
    </li>
    <li class="nav-item">
        <a class="nav-link text-dark" asp-area="" asp-controller="Welcome" asp-action="Index">Welcome</a>
    </li>
</ul>

原理说明

ASP.NET Core的Tag Helper会优先使用你显式指定的路由参数,当某个参数未指定时,会尝试从当前请求的路由数据中填充。显式设置asp-action="Index"后,就会强制使用控制器的默认Action,不再继承当前页面的Action值,从而生成正确的/Welcome(或/Welcome/Index,路由系统会自动匹配默认Action)。

内容的提问来源于stack exchange,提问作者Cristian Jacob Jimenez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:37:16