ASP.NET Core MVC State Management Bölüm-3
  1. Anasayfa
  2. ASP.Net

ASP.NET Core MVC State Management Bölüm-3

0

Merhabalar, Bir önceki yazımın devamı olan bu bölüm içerisinde, sizlere TempData nedir ve kullanımı hakkında bilgiler veriyor olacağım.

TempData

Tempdata, verileri başka bir istekte okunana kadar üzerinde tutma özelliğine sahiptir.

Bir proje üzerinden nasıl kullanıldığını beraber inceleyelim.

Sırası ile komutlarımız,

  1. cd Desktop => ilgili dizinimizi masaüstü olarak ayarlıyalım.
  2. mkdir StateManagement => StatManagement adında bir klasör oluşturalım
  3. cd StateManagement => dizin olarak, oluşturduğumuz klasörü belirleyelim
  4. dotnet new mvc -n TempDataApp -f netcoreapp3.1 => dotnet cli komutlarını kullanarak 3.1 versiyonu ile yeni bir mvc projesi oluşturuyoruz.
  5. cd TempDataApp => dizinimizi proje ana dizini olarak belirliyoruz.
  6. code . => code(boşluk).(nokta) diyerek vscode’u proje dizininde açıyoruz.

Projemizi açtıktan sonra, Controllers içerisind yer alan HomeController’a gelelim aşşağıdaki gibi düzenleyelim.

public class HomeController : Controller


{


    [HttpPost]


    [ActionName("Index")]


    public IActionResult Index()


    {


        TempData["Message"] = "Temp data mesaj içeriği";


        return RedirectToAction(actionName: nameof(Index));


    }


}

 

Yukarıdaki işlemde TempData nesnesini kullanarak Action içerisinde bir değer belirledik. Burdaki şekliyle tanımlama yapabildiğimiz gibi yeni gelen Attribute desteği kullanarakda kullanabiliryoruz. Aşağıdaki örneği inceleyiniz.

   public class HomeController : Controller


    {


        public IActionResult Index() => View();


        [TempData]


        public string Message { get; set; }


        [HttpPost]


        [ActionName("Index")]


        public IActionResult Index_Page()


        {


            Message = "Temp data mesaj içeriği";


            return RedirectToAction(actionName: nameof(Index));


        }


    }

 

Yukarıdaki kullanımda Controller içerisinde bir property ekleyerek [TempData] attribute ile, onun bir tempdata nesnesi olduğunu belirtiyoruz. Her iki kullanım şeklide geçerli olacaktır. Index view’ına gelerek aşşağıdaki kod bloklarını ekleyiniz.

@if(TempData.Peek("Message") != null){


     <h1 class="display-4">@TempData.Peek("Message")</h1>


 }


 <form  method="POST">


     <button class="btn btn-outline-dark">Click!</button>


 </form>

 

Yukarıda butona tıkladığınızda TempData içerisinde mesajı ekleyecektir ve yönlendirme sonrasında ekranda mesajı görüntülüyor olucağız. Sayfayı yenilediğinizde mesaj ekrandan silinecetir.

TempData.Peek("Message") = TempData["Message"]

 

 

Yukarıdaki örnek, yeni kullanım şekli ve eski kullanım şekli gösterilmiştir.

İstek sonunda eğer datanın silinmesini istemiyorsanız. Gelen değeri Keep içerisinde göstermeniz yeterli olacaktır. Index sayfasını aşşağıdaki gibi düzenleyiniz.

@if (TempData["Message"] != null)


{


    <h1 class="display-4"> @TempData["Message"] </h1>


    TempData.Keep("Message");


}


<form method="POST">


    <button class="btn btn-outline-dark">Click!</button>


</form>

Bir sonraki yazıda görüşmek üzere.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar        

www.mshowto.org

TAGs:ASP.NET Core MVC State, ASP.NET Core MVC State Management,MVC

Bu İçeriğe Tepkin Ne Oldu?
  • 4
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1982 Ankara doğumluyum, Lise ve Üniversite Eğitimini Açık Öğretim üzerinden tamamladım ve 2009 yılında BilgeAdam ile yazılım hayatına atıldım Öğrenci olarak başladığım kurumda 2009 yılından bu yana farklı görevlerde çalıştım. Şuan Bilgeadam beşiktaş şubesinde aktif olarak danışmanlık ve yazılım eğitmenliği yapmaktayım. Yeni teknolojileri araştırıp öğrenmeyi seven biriyim. İşim gereği hem geliştirdiğim projeler olsun eğitim verdiğim öğrenciler olsun aktif olarak kendimi güncel tutmak işimin gereği ve bu bildiklerimi paylaşmaktan mutluluk duyuyorum.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir