Если я правильно понимаю, я думаю, что проблема в том, что вы пытаетесь решить проблему с помощью очень простой системы, основанной на событиях. Что вам нужно сделать, так это создать собственную (очень простую) систему рабочих процессов для такой задачи, а также попытаться отделить некоторую внутреннюю логику от обработки пользовательского интерфейса (для этого идеально подойдет среда ASP.NET MVC, хотя Я вижу, что вы используете WebForms, что, тем не менее, не является большой проблемой). Теперь этот «рабочий процесс» не обязательно должен быть сложным. Начните с разбивки действий, выполняемых вашим приложением, на некую блок-схему. Если вы видите довольно простые зависимости, то это может быть просто вопросом реализации базового автомата. В качестве общего указателя на работу с состояниями в веб-приложениях (всех видов: приложение, сеанс, представление) прочитайте некоторые ссылки на этой странице . Боюсь, я не могу предоставить вам что-то более конкретное из того, что вы описали (возможно, я упускаю что-то очевидное, однако). Если вы хотите уточнить задачи, которые должен выполнять ваш веб-сайт / веб-приложение, я мог бы привести несколько примеров кода, но я подозреваю, что простое решение этой проблемы аналитически / с точки зрения потока должно дать вам хорошее решение. .