.NET MVC 中的 ActionResult 方法被加载两次

Use*_*987 0 c# asp.net-mvc actionresult asp.net-mvc-4 asp.net-mvc-5

我今天在我的项目上做一些事情,我注意到一个项目内的所有索引页面上都发生了一些非常奇怪的事情。例如,我的操作如下所示:

   public ActionResult Index(string id=null, string IsOld=null)
   {

        string id = null;
        string IsOld = null;
        return View();  
   }
Run Code Online (Sandbox Code Playgroud)

在没有任何指示性原因的情况下,此方法调用了两次。例如,如果我将断点放在:

   string id = null;
Run Code Online (Sandbox Code Playgroud)

当页面加载时,我会看到编译器在该行代码上停止两次......在某些页面上这不会发生......我已经检查了页面和脚本,但没有任何迹象表明调用相同的方法加载时两次......这很奇怪,我不知道为什么会发生这种情况?

以前有没有人遇到过这种问题,有人可以帮助我吗?

PS我还尝试禁用此页面上的所有脚本,以便排除某些javascript正在发布或两次调用该方法的可能性......即使禁用所有脚本,我仍然收到双重调用......

Sli*_*sim 5

我以前见过这种行为,尤其是在默认 url 上,可能是以下几种情况:

  • 空图像标签
  • 脚本标签上的空 src 标签
  • css 标签上的空链接
  • 谷歌 Adwords 导致它一次 - 他们去年有一个错误 IIRC
  • html中的嵌套表单
  • 被遗忘的元刷新头标签
  • 双重绑定的 JS 点击处理程序
  • 嵌套视图中的 Html.RenderAction - 眼不见心不烦等

在您选择的浏览器中启动网络检查器是个好主意。如果您可以看到在浏览器中启动了双重调用,这将告诉您它是客户端还是您的 razor 页面中的其他内容导致了它。

快乐狩猎