Один из способов, которыми я реализовал мастер, - это иметь отдельную таблицу базы данных, которая содержит всю информацию, необходимую для хранения, и сохранять / извлекать данные в эту таблицу на каждом шаге вашего мастера - очевидно, в зависимости от размер и назначение мастера могут не соответствовать количеству обращений к базе данных, но я реализовывал только 5-страничный мастер с максимум 5-10 полями на каждой странице. Поэтому, когда вы попадаете на страницу, вы запрашиваете базу данных и извлекаете информацию из базы данных или, если она не существует, загружаете пустую страницу, где пользователь может затем ввести информацию, и она сохраняется при нажатии кнопки «Далее» или «Назад».
Для навигации между страницами я просто создал вспомогательный класс, который принимал имя страницы и тип кнопки (Next / Previous) и имел простой оператор switch, который возвращал страницу для перехода, а затем использовал ее в операторе RedirectToAction. Опять же, это может не подойти для более крупного приложения, но вы также можете взглянуть на использование Windows Workflow (затронуто в этой статье http://www.devx.com/dotnet/Article/29992), поскольку я знаю, что его можно использовать для создания приложений в стиле мастера.