Не нужно иметь отвращение к TempData ... Но если не использовать правильно, это, безусловно, может указывать на плохой дизайн. Если вы используете RESTful URL-адреса, TempData - это лучшая практика для передачи сообщений из ваших действий POST в ваши действия GET. Учтите это:
У вас есть форма на URL Продукты / Новые. Форма «Сообщения для продуктов / Создать», которая проверяет форму и создает продукт. При успешном завершении контроллер перенаправляет на URL-адрес «Продукты / 1», а при ошибке перенаправляет обратно на продукты / «Новый» для отображения сообщений об ошибках.
Products / 1 - это просто стандартное действие GET для продукта, но мы хотим, чтобы отобразилось сообщение о том, что вставка прошла успешно. TempData идеально подходит для этого. Добавьте сообщение в TempData в Post Controller и добавьте логику if в представление и все готово.
При сбое я добавляю значения, введенные в formCollection, и коллекцию сообщений об ошибках в TempData в Post Action, и перенаправляю на первоначальное действие Prodcuts / New.
Я добавил логику в представление, чтобы заполнить входные данные формы ранее введенными значениями вместе с любыми сообщениями об ошибках. Мне кажется, это чисто и чисто!