В целом:
Контроллеры, как правило, представляют собой набор действий, которые имеют дело с логически согласованным фрагментом приложения (следовательно, почему вы часто видите UserController / OrderController и т. Д. И т. Д.).
Приложения MVC должны быть построены с использованием PRG (post - redirect - get), что означает, что у вас будет 2 действия для каждой формы, одно, которое будет отображать форму, а второе, с тем же именем, но украшенное [AcceptPost], которое обработает форму и перенаправит пользователя в соответствующее место на основе результата.
Самый простой способ узнать, как это работает и перенести ваше приложение, - смоделировать каждую форму как простой dto без логики, создать представление для каждой формы и 2 действия.
Если у вас есть логика, работающая в контроллере, вы можете захотеть перенести ее в какой-либо вид сервиса, который можно внедрить в контроллер.
Специально для ваших рабочих процессов:
Каждый рабочий процесс, вероятно, должен иметь свой собственный контроллер. Может быть полезно смоделировать их с использованием некоторой формы шаблона состояний (в зависимости от сложности рабочего процесса) и предоставления результата каждого перехода состояния, который ваш контроллер может преобразовать в перенаправление на следующий шаг в рабочем процессе.