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

ASP.NET Core MVC:asp-action标签助手为何自动添加asp-route-id?

ASP.NET Core MVC标签助手自动包含id参数的原因及解决办法

这是ASP.NET Core MVC的**路由值延续(Route Value Persistence)**特性,不是Bug。

当你访问Home/MyAction/1时,当前请求的路由数据上下文里已经包含了id=1这个值。标签助手在生成路由链接时,会自动从当前请求的路由数据中提取匹配的参数值,填充到对应的路由模板中——哪怕你没有通过asp-route-id显式指定。这种设计是为了方便在同一个路由上下文下生成链接时,自动保留已有的路由参数,避免重复输入。

解决办法

  • 显式清除id参数:在标签助手中添加asp-route-id="",强制清空该参数值
    <a asp-action="MyAction" asp-route-id="">My action</a>
    
  • 如果你需要清除多个路由参数,可以使用asp-all-route-data传入空字典:
    <a asp-action="MyAction" asp-all-route-data="@(new Dictionary<string, string>())">My action</a>
    

这样生成的链接就会是/Home/MyAction,不会自动带上id参数了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:59:52