Я пытаюсь найти хороший способ справиться следующий сценарий (я до сих пор своего рода новичок в этом):ASP.NET MVC: Как обрабатывать TempData кросс-действий и ViewData
Пользователь может зарегистрировать через мой сайт, используя поставщика RPX/OpenId.
Шаг 1: Пользователь аутентифицируется через поставщика. Поставщик возвращает временный токен одному из моих методов действия.
Шаг 2: Я использую токен, чтобы получить информацию профиля пользователя и загрузить представление, которое позволяет им вводить любые отсутствующие обязательные поля и необязательные поля.
В шаге 2 я использую 2 метода действий: один для обработки захвата информации с помощью токена. Второе действие, которое берет информацию авторизации и загружает представление отсутствующих/необязательных полей.
Я передаю информацию авторизации через TempData ко второму действию. Второе действие может обрабатывать валидацию, поэтому есть шанс, что мне нужно будет удерживать объект авторизации более чем на один запрос. Я не могу использовать токен для регенерации информации авторизации, потому что это технически одноразовый токен, и было бы глупо регенерировать запрос, поскольку он использует сетевые ресурсы.
Как я могу сохранить объекты в своей TempData для любых последующих запросов к одному и тому же действию, но удалить объекты для любых перенаправлений? И поскольку это может быть повторяемым шаблоном в моем приложении, я должен создать фильтр для автоматической обработки этой ситуации?
Например, я представляю атрибут фильтра, который объединит TempData (если есть) в ViewData. Но как я буду сохранять свои данные в будущих вызовах одного и того же действия? Бросить его в TempData снова? И если я обнаружил перенаправление пустым TempData?
Благодаря
После пустячный вокруг в течение нескольких часов, я просто решил повторно добавить данные в TempData , Я обнаружил, что вы не можете использовать TempData.Add снова, потому что коллекция уже содержит ключ. Поэтому я создал свой собственный метод расширения для повторного добавления ключа. – DennyFerra