MVC – ViewBag ve TempData Kullanımı

Merhabalar,

Bu yazıda, web projelerinde server tarafından ( controller )  client tarafa ( view ) bir uyarı mesajı göndermek istediğimizde de kullanılabilen  asp.net mvc ile kullanıma giren özelliklerden 2 tanesi olan ViewBag  ve TempData ile ilgili küçük bir çalışma yapıyor olacağız.

Senaryonuz gereği controller a isteği ajax methodları ile yapıyorsanız zaten ajax ın success yada error fonksiyonlarında kullanıcıya bir uyarı verdirebilirsiniz.

Ama controller a post işleminizi bir html helper ı olan BeginForm ile yapıyorsanız  controller da ViewBag  ve TempData yı birlikte kullanarak  View de bu uyarı kulanıcıya gösterebiliriz.

Proje olarak  isim – soyisim – platform – şifre post edelim,biz o verileri gönderirken belirteceğimiz kurala göre ise gelen istek ona göre bir uyarı gönderelim. Veritabanı ile işlem yapmayacağız, isteyen olursa daha sonra yardım edebilirim.

1-) Visual Studio da yeni bir proje açıyoruz

1.PNG

2-) Projemize (klasik 🙂 ) Home controller ımızı ekliyoruz.

3-) Oluşan controller ımız için ( return View() satırında view kısmına sağ tık ) Add View diyoruz aynı isimle ve alt satırda use layout master page yazan kısmı tikleyip layout seçerek controller ımıza ait view ü de oluşturmuş oluyoruz.

4-) Öncelikle BeginForm method umuz için bir model sınıf tanımlıyoruz ;

2

5-)  Sınıfı tanımladıktan sonra Home controller ımızın Index Action ına ait View de form umuzu yazıyoruz ;


4.PNG

  • Form da ControllerMessage id si verdiğimiz span html tag inde @ViewBag.X  şu demektir; biz controller da değişkenine değer atamışsak span tag inde o uyarı yer alacaktır.
  • BeginForm satırında ise bu formdaki verileri, Home controller da CreatePlatform ismindeki action a göndereceğimizi belirtiyoruz.

6-) Şimdi de controller da CreatePlatform methodumuzu yazalım ;

10.PNG

TempData ile CreatePlatforms action ındaki veriyi Index action ında kontrol ediyoruz.

Eğer sayfada bir post işlemi yoksa tempdata boş geleceği için span tag imizde direkt olarak false bloğundaki uyarı göstermemek için count u 0 değilse işlem yapsın şeklinde kural koyuyoruz.

Tempdata if bloğunda true değerini alırsa kayıt başarılı,false değerini alırsa da diğer uyarıyı kullanıcıya gösterecektir.

Projeyi ayağa kaldırıp nasıl göründüğüne bir bakalım ;

9.PNG

Evet harika bir tasarım biliyorum,teşekkür ederim sizde iyi ki varsınız 🙂 , şimdi de bir veriyi boş gönderecek şekilde formu doldurup post ediyorum ;

x-horz.jpg

Evet kısaca ViewBag ve TempData kullanımı bu şekildedir.

İyi çalışmalar 🙂

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s