LOGO

LOGO
LOGO
ads header

Breaking News

ViewData ,ViewBag ,TempData

KAYNAK

 https://www.c-sharpcorner.com/blogs/viewdata-vs-viewbag-vs-tempdata-in-mvc1

tanıtım

ViewData ve ViewBag aynı amaç için kullanılır -- denetleyiciden görüntülemeye veri aktarmak için. ViewData, bir nesneler sözlüğünden başka bir şey değildir ve anahtar olarak dize ile erişilebilir. ViewData, ViewDataDictionary sınıfının bir örneğini ortaya çıkaran bir denetleyici özelliğidir. ViewBag, ViewData'ya çok benzer. ViewBag dinamik bir özelliktir (.net framework 4.0'da tanıtılan dinamik anahtar kelime). ViewBag, dinamik olarak değer ayarlayabilir ve alabilir ve güçlü yazılanlara dönüştürmeden herhangi bir sayıda ek alan ekleyebilir. ViewBag, ViewData'nın etrafındaki yalnızca bir sarıcıdır.

ViewData Örneği
 

//Controller Code
public ActionResult Index()
{
      List<string> Student = new List<string>();
      Student.Add("Jignesh");
      Student.Add("Tejas");
      Student.Add("Rakesh");

      ViewData["Student"] = Student;
      return View();
}
//page code
<ul>
    <% foreach (var student in ViewData["Student"] as List<string>)
        { %>
    <li><%: student%></li>
    <% } %>
</ul>
C#


ViewBag Örneği
 

//Controller Code
public ActionResult Index()
{
      List<string> Student = new List<string>();
      Student.Add("Jignesh");
      Student.Add("Tejas");
      Student.Add("Rakesh");

      ViewBag.Student = Student;
      return View();
}
//page code
<ul>
    <% foreach (var student in ViewBag.Student)
        { %>
    <li><%: student%></li>
    <% } %>
</ul>
C#

TempData, TempDataDictionary sınıfından türetilmiş bir sözlüktür. TempData, tıpkı canlı oturum gibi kısa süreli olarak depolanan verilerdir. TempData, HTTP İsteği zamanı için verileri tutar; bu, verileri ardışık iki istek arasında tuttuğu anlamına gelir. TempData, denetleyiciler veya eylemler arasında veri aktarmamıza yardımcı olur. TempData, dahili olarak Oturum değişkenlerini kullanır. TempData'nın yalnızca geçerli ve sonraki istek sırasında çalıştığını unutmayın. Genellikle tek seferlik mesajları saklamak için kullanılır. TempData.Keep() yönteminin yardımıyla, istek tamamlandıktan sonra TempData nesnesindeki değeri tutabiliriz.

TempData Örneği
 

//Controller Code
public ActionResult Index()
{
    List<string> Student = new List<string>();
    Student.Add("Jignesh");
    Student.Add("Tejas");
    Student.Add("Rakesh");

    TempData["Student"] = Student;
    return View();
}
//page code
<ul>
    <% foreach (var student in TempData["Student"] as List<string>)
        { %>
    <li><%: student%></li>
    <% } %>
</ul>
C#


ViewData VS ViewBag VS TempData
 

Veriyi gör

Çantayı Görüntüle

TempData

Anahtar-Değer Sözlüğü koleksiyonudurBu bir tür nesnesidirAnahtar-Değer Sözlüğü koleksiyonudur
ViewData bir sözlük nesnesidir ve ControllerBase sınıfının özelliğidir.ViewBag, ControllerBase sınıfının Dynamic özelliğidir.TempData bir sözlük nesnesidir ve controllerBase sınıfının özelliğidir.
ViewData, ViewBag'den Daha HızlıdırViewBag, ViewData'dan daha yavaştırNA
ViewData, MVC 1.0'da sunulmuştur ve MVC 1.0 ve üzeri sürümlerde mevcutturViewBag, MVC 3.0'da tanıtıldı ve MVC 3.0 ve üzeri sürümlerde mevcutTempData ayrıca MVC1.0'da tanıtılmıştır ve MVC 1.0 ve üzeri sürümlerde mevcuttur.
ViewData ayrıca .net çerçevesi 3.5 ve üzeri ile çalışırViewBag yalnızca .net çerçevesi 4.0 ve üstü ile çalışırTempData ayrıca .net çerçevesi 3.5 ve üzeri ile çalışır
Numaralandırma sırasında Tür Dönüştürme kodu gerekliDerinlemesine, ViewBag dinamik olarak kullanılır, bu nedenle numaralandırma sırasında dönüştürme yazmaya gerek yoktur.Numaralandırma sırasında Tür Dönüştürme kodu gerekli
Yeniden yönlendirme gerçekleşmişse değeri null olur.ViewData ile aynıTempData, ardışık iki istek arasında veri iletmek için kullanılır.
Yalnızca geçerli istek sırasında bulunur.ViewData ile aynıTempData yalnızca geçerli ve sonraki istek sırasında çalışır


Çözüm

Üç seçeneğimiz var: Verileri denetleyiciden görüntülemeye ve sonraki istekte geçirmek için ViewData, ViewBag ve TeampData. ViewData ve ViewBag neredeyse benzerdir ve verileri denetleyiciden görüntülemeye aktarmamıza yardımcı olurken, TempData ayrıca mevcut ve sonraki istekler sırasında da çalışır.

Hiç yorum yok