Generally:
Controllers are usually a set of actions that relate to a logically sequential fragment of an application (therefore, why do you often see UserController / OrderController, etc. etc.).
MVC applications must be created using PRG (post-redirect-get), which means that you will have 2 actions for each form, one of which will display the form and the second with the same name, but decorated with [AcceptPost], which will process the form and redirect the user to the appropriate place based on the result.
The easiest way to find out how it works and transfer the application is to model each form as a simple dto without logic, build a view for each form and 2 actions.
When you have logic running in the controller, you can transfer it to one form or another of service that can be entered into the controller.
In particular, for your workflows:
Each workflow must have its own controller. It may be useful to simulate them using a state template (depending on the complexity of the workflow) and providing a result from each state transition that your controller can take to redirect to the next step in the workflow.
source share