我正在处理我正在处理的项目中的一个问题,我正在使用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上发生!
答案 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