Bu makalemizde Asp.Net MVC 3’de ViewData’nın ne olduğunu ve nasıl kullanıldığını inceleyelim.
ViewBag, MVC’de Dynamic View Data oluşturmayı sağlamaktadır.
Controller’dan View’a veri aktarımı için bir önceki makalemizde ViewBag’ı kullanmıştık Şimdi ViewData’yı kullanacağız. Kullanımı session kullanımına benzemektedir.
Şimdi HomeController’da Index() methoduna gidelim ve YazılımDevi.Com yazar listesini ekranda göstermek için Index() methodundan View’a (Index.aspx) listemizi gönderelim.
- public ActionResult Index()
- {
- ViewData["Baslik"] = "YazılımDevi.Com!";
- List<string> yazarlar = new List<string>
- {
- "Engin Demiroğ",
- "Veysel Uğur Kızmaz",
- "Salih Demiroğ",
- "Tolga Ayas",
- "Ahmet Sait Duran"
- };
- ViewData["Yazarlar"] = yazarlar;
- return View();
- }
Kullanımı Session’ın kullanımına benzemektedir. ViewData[“Baslik”] ile “Baslik” isminde bir ViewData oluşturuyoruz ve “YazılımDevi.Com!” değerini atıyoruz.
ViewData[“Yazarlar”] ile “Yazarlar” ile bir ViewData oluşturuyoruz ve yazarlar listemizi bu değişken ile View’a gönderiyoruz.
Şimdi Index.aspx’te yani View’ımızda bu değerleri gösterelim.
- <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- Anasayfa
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- <h2><%: ViewData["Baslik"] %></h2>
- <p>
- <% List<string> yazarlar = (List<string>)ViewData["Yazarlar"];
- foreach (var yazar in yazarlar)
- { %>
- <%:yazar %><br />
- <%}%>
- </p>
- </asp:Content>
- <%: ViewData["Baslik"] %>
ViewData’yı ViewData[“”] ile ekranda gösterebiliyoruz.
Burada dikkat etmeniz gereken en önemli yazım kuralı <%%>’dır. Eğer <% %> şeklinde yazarsak içine istediğimiz C# kodlarını yazabiliyoruz. Eğer bir değişkenin değerini göstermek istiyorsak <%: %> taglarını kullanmalıyız.
Çalıştırıp ekran görüntüsünü inceleyelim.
Peki ViewData ile ViewBag arasındaki en büyük fark nedir?
Başlangıçta şunu belirtmeliyiz, ViewBag, MVC 3.0 ile gelmiş bir özelliktir. ViewBag örneğinde dikkat ettiyseniz tür dönüşüm işlemine gerek yoktur. ViewData örneğimizde ise tür dönüşümü yapmak zorunda kaldık. ViewBag’ın bize sağladığı en büyük avantaj budur.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi