4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
|
|||||||||||
1 | |||||||||||
Сделать кнопку "Назад" без JS18.06.2023, 17:58. Показов 687. Ответов 3
Метки нет (Все метки)
Добрый день! Допустим, есть страница Index, на ней кнопка Stuff, на странице Stuff кнопка Users. Вверху на LayOut расположена кнопка "Назад".
Пока что есть такое решение: создан сервис, который хранит в своих пропертях имя контроллера и имя экшна, он инжектится в LayOut.cshtml при нажатии на кнопку layOut происходит вызов кнотроллера и экшна, которые в данный момент хранятся в свойствах сервиса. При вызове действий контроллеров обновляются свойства сервиса. Например, при вызове действия Users.Users проиходит:
Я знаю, что со страницы "Users" при нажатии "Назад" нужно попасть на страницу "Stuff". Как меня убрать из этой цепочки (т.е. мне не нравится хард-код)? Мне нужно, чтобы кнопка назад получала предыдущий адрес (грубо говоря). Мои попытки продвижения в этой области привели к созданию убер-сервиса, который должный знать обо всех контроллерах и хранить в себе стек вызовов их действий, в зависимости от состояния стека он должен вызывать те или иные действия тех или иных контроллеров. Мне кажется, это не совсем правильно. Добавлено через 4 часа 28 минут Ладно, сдаюсь. Вставил в страницу скрипт:
0
|
18.06.2023, 17:58 | |
Ответы с готовыми решениями:
3
Кнопку 'Назад' на панели инструментов сделать недоступной. Как сделать кнопку назад в боте Telegram на Python (TeleBot)? Сделать чтобы при нажатие на кнопку в textview дата листалась назад Нужно сделать кнопку "назад" для сайта Сделать в меню кнопку "назад" |
18.06.2023, 18:21 | 2 |
Не по теме: Иногда нужно признать, что общепринятое решение - действительно лучшее. ;) Добавлено через 10 минут Наверное потому что вы нарушаете смысл этого действия. Назад - это именно назад, на предыдущее действие. А вы "захардкодили", что здесь назад - это скорее "перейти на общий список". А такое вроде бы решается просто. Users - метод Stuff контроллера (если я правильно понял). А если на вьюшке Users сделать Url.Action("Index"), то по умолчанию роут будет именно в Stuff/Index. И нам не нужно даже знать о контроллере. (вот не понятно почему у вас BackAction Stuff. Видимо это даже не индекс. Ну тут видимо ещё и более глубокое погружение через на один уровень?) И если бы меня "припекло" сделать такой контролируемый возврат, то я бы просто в методе считывал страницу с которой был переход, а в куки бы кидал это значение. Тогда в другом методе, куда мы пришли, можно считать это значение и сделать "Галя, у нас возврат!" на нужный адрес. Но в итоге, вы признали что контролировать это не нужно. То есть переход "исторический", а значит браузер справится с этим идеально.
1
|
4 / 4 / 0
Регистрация: 01.11.2013
Сообщений: 216
|
|
18.06.2023, 18:37 [ТС] | 3 |
Да, Вы правы, у меня получилось не "Назад", а "Вверх".
Action Stuff.Stuff возвращает вьюху Stuff, на ней кнопка Users, она ссылается на Action Users.Users Я пытался это делать с помощью HttpContext["Refers"] (пишу примерно, точное местоположение Refers не помню), но у меня не было в контекста такого ключа почему-то.
0
|
22.06.2023, 00:49 | 4 |
Можно так:
- вводите атрибут PrevPage или как-то так, и вешаете на action которые возращают именно страницу, а не ajax-запрос - при предварительном обработке запроса, смотрим в сессию. Если там уже есть значение, вытаскиваем его в context и пишем текущий url - при обработке отображения страницы, смотрим в context. если там есть условный ранее вычитаный url -- значит для "назад" прописываем его - офигиваем от поведения, когда пользователь открыл больше одной страницы По идеи можно и не через атрибут, тут главное как-то различать запросы которые нужно запоминать, и которые игнорим. Можно хранить не в сессии, а как предложено выше в куках (проблемы с несколькими страницами по идеи тоже останутся) С history.back есть нескольки другой ньюанс: если вы пришли с другого сайта, то вас вернет на тот сайт, а не где-то выше по уровню в вашем. Ещё браузер может вернуть кеш, а не заново перегрузить страницу. Но зато лишаетесь головной боли по поводу "как" и в 99% случаев работает как ожидается (наверное).
0
|
22.06.2023, 00:49 | |
22.06.2023, 00:49 | |
Помогаю со студенческими работами здесь
4
Сделать так чтобы кнопка "Назад" еще и восстанавливала на листе удаленную кнопку со всеми параметрами и ссылками Как сделать кнопку без границы? Сделать загрузку инфы из файла без нажатия на кнопку Сделать загрузку инфы из файла без нажатия на кнопку как сделать чтобы калькулятор считал автоматически без нажатия на кнопку Сделать кнопку, которая будет не отвечать на нажатие без свойства Enabled? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |