Z tego, co przeczytałem, informacje umieszczone w TempData będą tam dla bieżącego żądania i następnego żądania (aby można było przekazywać informacje przez przekierowania). Problem polega na tym, że jeśli przejdę do akcji kontrolera, która nie przekierowuje, informacja w TempData nadal będzie dostępna dla następnego żądania. Używam TempData do przechowywania wiadomości informacyjnych, które są wyświetlane użytkownikowi, więc teraz otrzymuję wiadomości również dla pierwszego ekranu na drugim ekranie.ASP.NET MVC: czyszczenie TempData po wykonaniu metody kontrolera
Czy jest odpowiedni czas w cyklu życia kontrolera, aby wyczyścić TempData, gdy nie jest już używany?
Ale co, jeśli moja akcja kontrolera to jest przekierowanie? Nie mogę użyć ViewData w tym przypadku, ponieważ wiadomości już tam nie ma. Czy istnieje lepszy sposób radzenia sobie z takimi komunikatami, niż przechowywanie ich w pliku TempData/ViewData? –
Musisz użyć ViewData, gdy nie przekierowujesz i TempData podczas przekierowywania. W obu przypadkach wszystko inne dzieje się automatycznie. Aby wyświetlić, wpisz: TempData ["key"]? ViewData ["key"] w twoim widoku. –