По сути, это вопрос не имеет отношения к ASP.NET, поскольку ASP.NET - это бэкенд, а
а промежуточные состояния формы сохраняются на фронтенде (куки, localStorage, store во всяких Redux, Ngrx и т
д для различных клиентских фреймворков).
Исключение только если вы на ASP.NET WebForms пишете, а не на MVC/Core, там фронт и бэк перемешаны, промежуточное состояние можно сохранять во ViewState, но вряд ли вы на нем пишете - он древний.
Еще в сессионные переменные складывать можно.
https://metanit.com/sharp/aspnet5/2.26.php
А так отталкивайтесь от реализации фронтенд части, на чем она реализована.
И еще погуглите "asp.net core multystep form"