在每个请求.NET MVC中调用方法2或3次

时间:2017-01-31 09:58:53

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我正在处理我正在处理的项目中的一个问题,我正在使用ASP.NET MVC。

方案如下:
  - 我有一个登录页面(用户名和密码)   - 每当我导航到localhost:5588 / login时,下面的动作方法将被调用2或3次(我在此方法中使用断点来捕获调用)。

public ActionResult Login()
{
     return View();
}

问题是,为什么每当我进入登录页面时,这个方法被调用2-3次?

P.S#1:不仅登录页面被调用了2-3次,而且每种Action方法都有相同的问题 P.S:#2:我正在使用以下路线:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
        );       
}

更新
此问题仅在Google Chrome上发生!

4 个答案:

答案 0 :(得分:2)

可能会发生问题,因为浏览器可以在您按Enter键之前预加载页面。 在此线程发布的解决方案中,您如何理解它是预加载请求:HTTP header to detect a preload request by Google Chrome

答案 1 :(得分:1)

显然有些人会将你的行动方法称为3次,强烈建议打开Chrome开发者工具,导航到网络并查看流量,如果他们是XHR请求你也可以跟踪他们来自哪里,否则就是在黑暗中拍摄。

答案 2 :(得分:1)

我曾经遇到过这个问题,发现我有类似的东西

src="#"

在我的图片标记中或检查可能意外引用该页面的任何其他标记,如脚本引用,图像引用,css引用等

答案 3 :(得分:0)

这是正确的答案,这实际上解决了这个问题。 [特别感谢我的朋友 Mohammad Aldayem 的伟大发现]。

根据Chromium问题跟踪器(https://bugs.chromium.org)上发布的问题,问题出在_Layout.cshtml页面的“ favicon.ico ”中。因为Chrome会在没有favicon的网页上的每个请求上请求favicon。

以下是使用Google Chrome时出现此问题的链接:

链接#1:https://bugs.chromium.org/p/chromium/issues/detail?id=64810
链接#2:https://bugs.chromium.org/p/chromium/issues/detail?id=39402