Задать вопрос
@da_normalny_ya

Почему пропускается выполнение метода контроллера в ASP.NET Core?

Есть мастер страница со следующим участком отвечающим за карточку пользователя (возможность авторизироваться или перейди в профиль/выйти из аккаунта)

Код

<div class="header_form">

            <a class="logo_hiden" href="/">
                <img src="~/img/logo.svg" alt="TRUprogram">
            </a>
            @if (Context.Session.Keys.Contains("user"))
            {
                <div class="lk_mini">

                    <div class="user">
                        
                        <a class="n" href="~/User/Profile">
                            @Context.Session.GetString("user")
                        </a>
                        <a class="v" href="~/User/Logout">Выйти</a>
                    </div>

                    <a href="~/User/Profile">
                        <img width="50px" src="@Context.Session.GetString("userAvatar")" alt="avatar">
                    </a>

                </div>
            }
            else
            {
                <a href="~/User/Login"><input class="log_btn" type="button" value="Вход"></a>
            }
        </div>



проблема возникает при обработке нажатия кнопки выхода, вот код обработчика:

Код

public IActionResult Logout()
        {
            if (!HttpContext.Session.Keys.Contains("user"))
                return LocalRedirectPermanent("/");

            foreach (var key in HttpContext.Session.Keys)
            {
                HttpContext.Session.Remove(key);
            }

            Response.Cookies.Delete(".AspNetCore.Session");
            return LocalRedirectPermanent("/");
        }


суть проблемы в том, что этот метод не вызывается (проверял через брейкпоинт) и происходит сразу редирект (код 301) на главную страницу при чем по полному пути (/OtherPages/Index) , при этом иногда метод все же вызывается, но установить закономерность не удалось.
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Браузер закэшировал 301 код и не стал отправлять запрос.
Попробуй выключить/почитстить кэш или зайти через инкогнито
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы