Prędzej czy później spotkasz się z przekazywaniem różnych zmiennych pomiędzy odpowiednimi częściami Twojej aplikacji, dlatego pokażę Ci na prostym przykładzie w jaki sposób odpowiednio przekazać dane.
Aby przekazać dane z kontrolera do widoku, można użyć:
- ViewBag.nazwa
- ViewData[‘nazwa’]
- TempData[‘nazwa’]
Naszym przykładem jest prosty e-mail sender. Powiedźmy, że mamy na naszej stronie formularz zgłoszeniowy i chcemy odbierać różnego rodzaju e-maile od naszych klientów. Zakładamy, że po prawidłowym wysłaniu e-maila przez użytkownika chcemy pokazać mu komunikat z wiadomością o prawidłowym wysłaniu e-maila.
Ponieważ będziemy sprawdzali w widoku czy zmienna jest ustawiona, skorzystamy z trzeciej możliwości czyli TempData.
Spójrzmy najpierw w nasz kontroler odpowiedzialny za widok z formularzem zgłoszeniowym. Przyjrzyjmy się bliżej części kodu odpowiedzialnej za wysyłanie e-maila.
Po prawidłowym przesłaniu maila należy ustawić zmienną z komunikatem. Dlatego dopisujemy jedną linijkę. Całość wygląda tak:
Teraz wystarczy do naszego widoku dopisać sprawdzanie czy jest ustawiona zmienna o nazwie “Success” i w przypadku gdy jest, żeby wyświetlić komunikat. Przy pomocy Razor dopisujemy do naszego widoku z formularzem:
Teraz po prawidłowym wysłaniu e-maila, klient zobaczy komunikat
“Sukces! Wiadomość została wysłana”