ViewBag in MVC


What is ViewBag

In my last article I explain how to send data from view to controller using ViewDataViewBag is also used to pass data from controller to its corresponding view. ViewBag used dynamic property which introduced in C# 4.0.
It is actually a dynamic ViewData Dictionary so you can say that it’s just a wrapper around ViewData.

ViewBag Example

Create a controller name Home and create view name Index. In this view create a list of type string in which stores the Department Name.

Code of Home Controller

  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication5.Controllers
{
    public class HomeController : Controller
    {
       
        public ActionResult Index()
        {
            List<string> dept = new List<string>()
            {"HR","Sales","Developer"};

            ViewBag.dept_name = dept;
            return View();
        }

    }
}  

Code of Index View

In this example we create dynamic property named dept_name. Now use this ViewBag in View
  
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        Employee Departments are:-<br />
        @foreach (string dept in ViewBag.dept_name)
        { 
        
            <p><b>@dept</b></p>
        
        }
    </div>
</body>
</html>    
As you can see that we need not to perform the type casting while working with ViewBag.
The output of this code will be as follows:-

No comments:

Post a Comment