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

ASP.NET Core 6 MVC点击链接时IActionResult被多次调用的问题

点击锚点后ASP.NET Core 6 MVC控制器Add方法触发两次的原因分析

在ASP.NET Core 6 MVC项目中,点击如下锚点标签后,控制器的Add方法断点连续触发两次:

锚点标签代码

<a asp-area="" asp-controller="Trip" asp-action="Add" asp-route-id="Page1" style="text-decoration:none; font-weight:bold;">Add Trip</a>

控制器代码

public IActionResult Add(string id = "Page1")
{
   return View(id);
}

视图代码

@{
    ViewData["Title"] = "Add Trip - Page 1";
}

<h1>Page 1</h1>

以下是几种常见的触发第二次请求的原因:

  • 浏览器自动请求favicon.ico匹配路由:
    多数浏览器会自动请求网站图标favicon.ico,若项目中未放置该文件,且默认路由模板({controller=Home}/{action=Index}/{id?})将此请求解析为Trip/Add调用(favicon.ico被当作id参数),就会触发第二次方法调用。可通过浏览器网络面板查看请求URL,或在控制器中输出id参数值验证。

  • 布局页引用不存在的资源:
    若项目的布局页(_Layout.cshtml)中引用了不存在的CSS、JS或图片资源,浏览器会对这些资源发起请求。如果资源路径恰好匹配Trip/Add的路由规则,就会触发第二次调用。检查布局页的资源引用,或查看网络面板的请求记录即可确认。

  • 路由配置冲突:
    自定义路由规则可能导致请求被重复匹配,或特殊路由模板误将后续请求导向Trip/Add方法。检查Program.cs中的路由配置,确认是否存在可能引发重复匹配的规则。

  • 浏览器自动重试:
    极少数情况下,第一次请求响应异常(如超时、不完整)会触发浏览器自动重试,导致方法被调用两次。可通过网络面板查看请求状态码和响应内容确认。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:01:21