2017-01-31 1 views
2

Я столкнулся с проблемой в проекте, над которым я сейчас работаю, я использую ASP.NET MVC.метод называется 2 или 3 раза в каждом запросе. NET MVC

Сценарий следующим образом:
- У меня есть страница входа в систему (имя пользователя и пароль).
- Всякий раз, когда я перехожу к localhost: 5588/login, приведенный ниже метод действия будет называться 2 или 3 раза (я использую точку прерывания внутри этого метода, чтобы поймать вызов).

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

Вопрос в том, почему этот метод называется 2 - 3 раза при входе на страницу входа?

P.S # 1: Не только страница входа в систему вызывается 2-3 раза, также каждый из этих методов имеет ту же проблему.
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 } 
     );  
} 

UPDATE:
Эта проблема происходит только на Google Chrome!

+0

Если вы используете маршрут по умолчанию, то 'локальный: 5588/login' никогда не ударил бы этот метод (он перешел бы к методу 'Index()' 'LoginController') –

+1

@MohammadAlqerm, что делает LoginView? Можете ли вы опубликовать код? – peval27

+0

@ peval27: вид входа содержит только имя пользователя и пароль, а также область CAPTCHA. Но проблема заключается не только в методе действий входа в систему, это происходит в каждом вызове метода действий во всем проекте. –

ответ

0

Это правильный ответ, и это фактически решило проблему. [Особая благодарность моему другу Mohammad Aldayem за отличное открытие].

Основываясь на вопрос, размещенном на Chromium Issue Tracker (https://bugs.chromium.org), вопрос был в "favicon.ico" на странице _Layout.cshtml. Поскольку Chrome запрашивает значки по каждому запросу на страницах, у которых нет значка.

А вот ссылки на этот вопрос, а с помощью Google Chrome:

Ссылка # 1: https://bugs.chromium.org/p/chromium/issues/detail?id=64810
Ссылка # 2: https://bugs.chromium.org/p/chromium/issues/detail?id=39402

1

Возможно, что-то трижды вызывает ваш метод действий, настоятельно советует открывать инструменты для разработчиков Chrome, переходить к сети и проверять трафик, если они являются запросами XHR, вы также можете отслеживать, откуда они пришли, в противном случае это стрелять в темно.

+0

Не только страница входа в систему вызывается в 2-3 раза, также каждый из них имеет одну и ту же проблему. –

2

Проблема может произойти, поскольку браузер может предварительно загрузить страницу, прежде чем вы нажмете Enter. В этой теме размещены решения, как вы можете понять, что это запрос предварительной нагрузки: HTTP header to detect a preload request by Google Chrome

1

Я когда-то этот вопрос и нашел, что я что-то вроде этого

src="#" 

в моем изображении тег или проверить любая другая разметка, которая может быть случайно указана на странице, например, ссылки на скрипт, ссылки на изображения, ссылку на css и т. д.

Смежные вопросы