Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Возник вопрос - как правильно сохранять значения между вызовами различным методов одного контроллера (в идеале - можно и разных)? Пример: есть страницы, которые могут быть доступны сами по себе, а могут быть вызваны из других страниц с определенными идентификаторами. Хотелось бы понять, как можно эти идентификаторы правильно сохранять между вызовами разных методов. Мне на ум приходят всякие самопальные сохранялки типа в БД или в кэше. Но для такой простой задачи это ИМХО перебор. Есть вариант с TempData, но там каждый раз нужно считывать данные и снова их записывать, чтобы они не терялись. То есть если был вызван любой метод контроллера и данные в TempData не были перезаписаны - они теряются. Вариант с передачей этих идентификаторов через параметры метода какой-то громоздкий и некрасивый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 22:28 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Да, это яВариант с передачей этих идентификаторов через параметры метода какой-то громоздкий и некрасивыйНормальный вариант. Объясни, почему считаешь его громоздким и некрасивым? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 00:59 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
skyANAДа, это яВариант с передачей этих идентификаторов через параметры метода какой-то громоздкий и некрасивыйНормальный вариант. Объясни, почему считаешь его громоздким и некрасивым? Нелогично. Есть метод, который просто выводит View. Без всякой бизнес-логики. Мне придется в КАЖДЫЙ метод, включая и этот, передавать параметр и в каждой View его читать и приплюсовывать ко всем методам. Может, как то сумбурно объясняю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:13 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Да, это яskyANAпропущено... Нормальный вариант. Объясни, почему считаешь его громоздким и некрасивым? Нелогично. Есть метод, который просто выводит View. Без всякой бизнес-логики. Мне придется в КАЖДЫЙ метод, включая и этот, передавать параметр и в каждой View его читать и приплюсовывать ко всем методам. Может, как то сумбурно объясняю?Сумбурно. Если нет логики, то зачем параметр? Что за параметр? На фига его вообще надо передавать? Визард что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:24 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
skyANAДа, это япропущено... Нелогично. Есть метод, который просто выводит View. Без всякой бизнес-логики. Мне придется в КАЖДЫЙ метод, включая и этот, передавать параметр и в каждой View его читать и приплюсовывать ко всем методам. Может, как то сумбурно объясняю?Сумбурно. Если нет логики, то зачем параметр? Что за параметр? На фига его вообще надо передавать? Визард что-ли? Что-то вроде этого. Есть справочник пользователей. Я хочу захватить мир управлять пользователями: добавлять, удалять, изменять... Есть контрагенты, за которыми закреплены пользователи. И если я из формы контрагента перехожу к диалогу выбора пользователя, то мне нужно передавать идентификатор контрагента для адресной работы. Проблема в том, что этот идентификатор нужен всего в паре действий, а всего действий для пользователя много. И мне нужно как-то сохранять идентификатор. Вот и пытаюсь понять, как это делают тру программеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:30 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Да, это яskyANAпропущено... Сумбурно. Если нет логики, то зачем параметр? Что за параметр? На фига его вообще надо передавать? Визард что-ли? Что-то вроде этого. Есть справочник пользователей. Я хочу захватить мир управлять пользователями: добавлять, удалять, изменять... Есть контрагенты, за которыми закреплены пользователи. И если я из формы контрагента перехожу к диалогу выбора пользователя, то мне нужно передавать идентификатор контрагента для адресной работы. Проблема в том, что этот идентификатор нужен всего в паре действий, а всего действий для пользователя много. И мне нужно как-то сохранять идентификатор. Вот и пытаюсь понять, как это делают тру программеры.Историю что-ли надо запомнить? Типа нужно поделать что-то с пользователем и вернуться на страницу контрагента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:37 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
skyANAДа, это япропущено... Что-то вроде этого. Есть справочник пользователей. Я хочу захватить мир управлять пользователями: добавлять, удалять, изменять... Есть контрагенты, за которыми закреплены пользователи. И если я из формы контрагента перехожу к диалогу выбора пользователя, то мне нужно передавать идентификатор контрагента для адресной работы. Проблема в том, что этот идентификатор нужен всего в паре действий, а всего действий для пользователя много. И мне нужно как-то сохранять идентификатор. Вот и пытаюсь понять, как это делают тру программеры.Историю что-ли надо запомнить? Типа нужно поделать что-то с пользователем и вернуться на страницу контрагента? Не совсем. Пример: если я перехожу к пользователям от контрагента, то мне должны быть доступны действия: сменить пользователя для этого контрагента или назначить назначить пользователя, если таковой отсутствует. Ну, помимо стандартных CRUD-операций. А вот если я просто с пользователями работаю, волшебных кнопок быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 01:45 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Да, это я, сессии чем не угодили? куки? вообще странная логика имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 06:01 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
собственно если вы сейчас авторизовались как контрагент то имея эту роль думаю легко реализовать ограничение и ничего в урл не пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 09:10 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuсобственно если вы сейчас авторизовались как контрагент то имея эту роль думаю легко реализовать ограничение и ничего в урл не пойдет.А я так и не понял, что нужно ТС. То ли наличие кнопок зависит от прав текущего пользователя, то ли действительно от того, откуда был совершён переход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:06 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
Да, это яМне на ум приходят всякие самопальные сохранялки типа в БД или в кэше. Самый правильный способ, особенно для случаев, если клиент закроет браузер и через некоторое время захочет продолжить работу. Да, это яВариант с передачей этих идентификаторов через параметры метода какой-то громоздкий и некрасивый Это единственно верный путь. hVosttДа, это я, сессии чем не угодили? куки? вообще странная логика имхо. Если разработчик раздолбай - сессия и куки отличный инструмент для подобных задач. А нормальные люди используют БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:09 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУhVosttДа, это я, сессии чем не угодили? куки? вообще странная логика имхо. Если разработчик раздолбай - сессия и куки отличный инструмент для подобных задач. А нормальные люди используют БД. вот только тебя и забыли спросить, когда изобретали сессии и куки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:12 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУЭто единственно верный путь. единственно верного пути не существует. только в умах больных на всю голову людей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:14 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
hVosttвот только тебя и забыли спросить, когда изобретали сессии и куки. Тебе только дай гавно написать, да? P.S. Уже сто раз перетирали эту тему, особенно про всякие корзины и им подобные. Вариант с БД - это прозрачное стабильное решение, которое не зависит от количества звезд на луне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:15 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
hVosttединственно верного пути не существует. только в умах больных на всю голову людей. Выпей яду, студент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:16 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУhVosttвот только тебя и забыли спросить, когда изобретали сессии и куки. Тебе только дай гавно написать, да? P.S. Уже сто раз перетирали эту тему, особенно про всякие корзины и им подобные. Вариант с БД - это прозрачное стабильное решение, которое не зависит от количества звезд на луне. нужно четко разделять, какая информация является сессионной для пользователя, а какая персистентная. товар в корзине -- персистентная. но писать про какое-то "стабильное решение" в отрыве от задачи -- слова никак не профессионала, и даже не студента. а какого-то прыщавого подростка с максималистскими ч/б заскоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:24 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУСамый правильный способ, особенно для случаев, если клиент закроет браузер и через некоторое время захочет продолжить работу. тогда надо не забывать моментально отправлять на сервер каждый символ введенный пользователем абсолютно в любую форму на сайте. на случай, если пользователь вдруг закроет браузер. а потом через некоторое время решит "продолжить работу". и когда юзер откроет браузер, и перейдет на сайт, надо чтобы сразу открылась та самая страничка с той самой формой, и чтобы форма была ровно в том состоянии, в котором она была, когда пользователь закрыл браузер. и при чем, он ведь может открыть другой браузер. и совсем с другого устройства. это не имеет значение. должно быть вот так, а не иначе. ну идиоты 99,9% разработчиков веб-приложений. таких элементарных вещей не знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:33 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuсобственно если вы сейчас авторизовались как контрагент то имея эту роль думаю легко реализовать ограничение и ничего в урл не пойдет. Нет, речь как раз идет о том, чтобы из админки назначать пользователей контрагентам. Чтобы контрагент мог сам аутентифицироваться впоследствии skyANAдействительно от того, откуда был совершён переход Это ближе к истине. То есть нужно понимать, откуда был совершен переход и, исходя из этого, совершать какие-либо действия hVosttДа, это я, сессии чем не угодили? куки? вообще странная логика имхо. вариант с сессией не пойдет, потому что нужно будет реализовывать и логику очистки этого значения. Про куки - думаю, аналогично. МСУДа, это яМне на ум приходят всякие самопальные сохранялки типа в БД или в кэше. Самый правильный способ, особенно для случаев, если клиент закроет браузер и через некоторое время захочет продолжить работу. Да, это яВариант с передачей этих идентификаторов через параметры метода какой-то громоздкий и некрасивый Это единственно верный путь. Ув. МСУ, немного противоречите друг другу :-) В общем, исходя из обсуждения, получается, что оптимальным вариантом является TempData, просто в каждом методе придется делать чтение и повторную запись этого значения. Либо с передачей параметра в каждый метод с соответствующей правкой вьюшек Поясню, почему с параметрами не очень нравится. Везде придется писать что то типа следующего: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. PS Сохраняемость между сессиями не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:36 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
hVosttнужно четко разделять, какая информация является сессионной для пользователя, а какая персистентная. товар в корзине -- персистентная. но писать про какое-то "стабильное решение" в отрыве от задачи -- слова никак не профессионала, и даже не студента. а какого-то прыщавого подростка с максималистскими ч/б заскоками. Далеко не всегда можно определить с ходу, какого типа информация и для чего нам нужно пытаться ее классифицировать. А если это информация, и не просто информация, а пользовательские данные в разрезе решаемой бизнес задачи - ей место в БД, а не где-то у черта на куличках. Есть такое понятие, как дальнозоркость в проектировании архитектуры - в любой момент можно провести её масштабирование, могут измениться бизнес правила и прочее. В чем отличие упоротого недальнозоркого программиста от вменяемого главного спеца, архитектора или лида? Правильно, основное отличие в том, что у упоротой обезьяны нет головного мозга для того, чтобы думать. Поэтому продолжай писать гавнокод и не смотри по сторонам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:42 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
АБВГДЕЙВ общем, исходя из обсуждения, получается, что оптимальным вариантом является TempData, просто в каждом методе придется делать чтение и повторную запись этого значения. Либо с передачей параметра в каждый метод с соответствующей правкой вьюшек банальный F5 убьёт всю вашу логику. сессия и очистка. вариантов масса. можно использовать технологию Anti Forgery Token. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:43 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
hVosttтогда надо не забывать моментально отправлять на сервер каждый символ введенный пользователем абсолютно в любую форму на сайте. на случай, если пользователь вдруг закроет браузер. а потом через некоторое время решит "продолжить работу". Если пользователь зафиксировал сохранение данных (нажал кнопку, произвел иные действия) - то всё, что введено, нужно сохранить. Тебя это смущает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:44 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУДалеко не всегда можно определить с ходу, какого типа информация и для чего нам нужно пытаться ее классифицировать. А если это информация, и не просто информация, а пользовательские данные в разрезе решаемой бизнес задачи - ей место в БД, а не где-то у черта на куличках. Есть такое понятие, как дальнозоркость в проектировании архитектуры - в любой момент можно провести её масштабирование, могут измениться бизнес правила и прочее. В чем отличие упоротого недальнозоркого программиста от вменяемого главного спеца, архитектора или лида? Правильно, основное отличие в том, что у упоротой обезьяны нет головного мозга для того, чтобы думать. Поэтому продолжай писать гавнокод и не смотри по сторонам. я ничего не понял, что ты хотел сказать. если ты не можешь определить какого типа информация в попытке её классификации. исполняй то, шо тебе сказал то, кто может определить и классифицировать и помалкивай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:44 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
АБВГДЕЙУв. МСУ, немного противоречите друг другу :-) Не вижу противоречий. Потому что сохранение в БД не исключает вариант передачи параметра в URL. Часто используют гуид операции, как вариант. АБВГДЕЙВ общем, исходя из обсуждения, получается, что оптимальным вариантом является TempData TempData - это зло, а не оптимальный вариант. Используй модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:47 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
hVosttя ничего не понял, что ты хотел сказать. Ты просто еще не дорос, чтобы понимать очевидные вещи. А сказал я настолько банальные вещи, что даже прыщавые студенты вроде тебя поймут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:48 |
|
||
|
сохранение значений между вызовами методов контроллеров
|
|||
|---|---|---|---|
|
#18+
МСУНе вижу противоречий. Потому что сохранение в БД не исключает вариант передачи параметра в URL. Часто используют гуид операции, как вариант. да ты совсем упоротый. сначала ты говоришь что, самый правильный способ, это сохранять в БД, потом тут же комментируешь, что передача идентификаторов через параметры метода -- единственно верный путь. крышак продолжает протекать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 10:50 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38422244&tid=1358054]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 315ms |

| 0 / 0 |
