ViewBag, MVC’de Dynamic View Data oluşturmayı sağlamaktadır. Dynamic View Data Dictionary, Runtime’da (çalışma anında) işleyen ve Controller ile View arasında veri transferini sağlayan yapıdır. Asp.Net’te aspx formumuza server side verileri, code behind’dan (aspx.cs) gönderiyorduk. MVC’de benzer işlemi ViewBag, ViewData vb. yapılarla aktarıyoruz. Öncelikle ViewBag Kullanımı;

HomeController’da Index() methoduna gidelim. ViewBag. yazalım ve çıkan açıklama metnini inceleyelim.

mvc6“This operation will be resolved at runtime” : Çalışma zamanında çözümlenecek olan kod bloğudur. Burada istediğimiz türden veriyi Index.aspx formumuza gönderebiliriz. Şimdi bir örnek ile nasıl yapıldığını inceleyelim.

public ActionResult Index()
{
    ViewBag.Message = “Hoşgeldiniz ASP.NET MVC!”;
 
    List<string> yazarlar = new List<string>
    {
        “Hasan KAÇAN”,
        “Ali UÇAN”,
        “Veli BİLEN”,
        “Halis GÖREN”,
        “Kemal ÖRTEN”
    };
    ViewBag.YazarListesi = yazarlar;
 
    return View();
}

List<string> türünden yazar listemizi oluşturup bu listeyi sayfada gösterelim. Bunun için bu değişkenimizi ViewBag ile Index.aspx’e gönderiyoruz.
ViewBag’a YazarListesi özelliği oluşturuyoruz ve yazarlar listemizi bu değişkene atıyoruz. Şimdi Index.aspx sayfamıza gidelim ve YazarListesi’nin değerlerini alt alta ekranda yazalım.
<%@ 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><%: ViewBag.Message %></h2>
    <p>
        <% List<string> yazarlar = ViewBag.YazarListesi;
           foreach (var yazar in yazarlar)
           { %>
       
            <%:yazar %><br />
       
        <%}%>
    </p>
</asp:Content>
Kaynak:
Razor ile kullanımı:
mvc_1
mvc_3
Burada kırmızı çerçeveli alanda Razor seçin.
HomeController’da Index() methoduna gidelim. 
public ActionResult Index()
{
ViewBag.Message = “Hoşgeldiniz ASP.NET MVC!”;
var yazilimgelistir = new List<string> //bu şekildede liste oluşturulur yukarıdaki koddan farklı değil.
{
“Hasan KAÇAN”,”Ali UÇAN”,”Veli BİLEN”,”Halis GÖREN”,”Kemal ÖRTEN”
};
ViewBag.yazilimgelistir = yazilimgelistir;
return View();
}
mvc_4
index.aspx içine razor yapıda kodu yazıyoruz.
<h2>@ViewBag.Message</h2>
<ul>
@foreach (var gelistirici in ViewBag.yazilimgelistir)
{
<li>
@gelistirici
</li>
}
</ul>
Sonuç:
mvc7
Reklamlar