используя классический asp, за эти годы мы разработали платформу для обработки некоторых довольно сложных веб-страниц.
Класс Crud задуман как своего рода «конечный автомат»
состояние сохраняется между сообщениями с использованием скрытых полей, и каждое событие на страницах вызывает сообщение с определенным действием. в соответствии с инициированным действием и предыдущим состоянием класс crud выполняет определенную операцию (например, выполнение запроса, сохранение записи, редактирование записи и т. д.) и переходит в другое состояние.
это некоторые из состояний, которые мы обрабатываем до сих пор
запрос: позволяет пользователю вводить критерии запроса для фильтрации данных.
browse: показывает данные в виде таблицы. с нумерацией страниц, заказом и т.д ...
новое, редактирование, удаление: ну, довольно очевидно
browse-single: как редактировать, но только для чтения
и т.д ...
для достижения желаемой функциональности мы храним скрытую информацию, такую как:
фактическое действие, фактический режим, предыдущее действие, предыдущий режим, идентификатор выбранной записи, критерии заказа и т. д. *
Теперь мы реализовали некоторые основные функции, но этот подход становится слишком сложным.
мы должны хранить в скрытых полях идентификатор родительской записи, родительское поле, режим родителя, режим дочернего элемента, текущую вкладку, предыдущую вкладку (мы разделили информацию между несколькими вкладками). ..
все становится еще сложнее, когда вам приходится обрабатывать «пользовательские» действия (например, утверждение счета-фактуры) или предупреждения, ошибки, пользовательские «рабочие процессы» и тому подобное ...
В конце мы видим, что при таком подходе все становится слишком сложно, как только мы отклоняемся от стандартного грубого случая ...
что вы думаете об этом подходе?
как вы справляетесь с такими вещами?
какой шаблон вы можете мне посоветовать посмотреть?
как вы отслеживаете состояние формы?