How many to Send Data From Controller to View, ASP.NET MVC Objects, ViewData, ViewBag and TempData

0
 ASP.NET MVC  Provide Three Different Types of Objects to Store data and send it into View.



1)  ViewData:-   

It is used to store data using key=>value pair, the key is used to provide identity, and data is used to store value. default value of ViewData is 0, if we call ViewData under different ActionMethod then it does not provide an error.

ViewData["Key"]=value
ViewData["rno"] = 1001 // Object

It Stores data in an Object pattern and its scope will be the same controller to view (same request).

After Redirection Value will be null of ViewData Object.


2)  ViewBag:-   

It is used to store data in an Object pattern, Its scope will be the same controller to the same view similar to ViewData but it is used to manage data type of assigned data implicit.
 default value of ViewBag is null, if we call ViewBag under different ActionMethod then it provides an error.


Syntax:-

ViewBag.key = value

ViewBag.a=10  //Int   
 
After Redirection Value will be null of ViewBag Object. ViewBag is the modification of ViewData.


3) TempData:-   

It is used to store data in an Object pattern, Its scope will be the same controller to a different view means it will work on cross request, After Redirection, we can store data under TempData Object.


TempData["key"]=value   

TempData["a"]=100;  //Object pattern

TempData does not manage data type, it stores all data in Object patterns.

TempData.keep()  is used to store data permanently

TempData.Remove("key") is used to remove data 

Practical Implementation of ViewBag, ViewData, and TempData:-


Create a Controller with the Get method




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

namespace BasicMVCExample.Controllers
{
    public class ObjectDataController : Controller
    {
        //
        // GET: /ObjectData/

        public ActionResult Index()
        {
            ViewData["key1"] = 10;
            ViewBag.key = 111;
            TempData["key"] = 23;
           // return View();
            return RedirectToAction("Method2");
        }

        public ActionResult Method2() {
            TempData.Keep();
           // TempData.Remove("key");

            return View();
     
        }

    }
}



Create View for method2.cshtml

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Method2</title>
</head>
<body>
    <div>
       @ViewData["key1"] 
       @ViewBag.key
       @TempData["key"]
    </div>
</body>
</html>



public class TestObjectController : Controller
    {
        //
        // GET: /TestObject/

        public ActionResult Index()
        {
            ViewBag.a = 10;
            ViewData["rno"] = 1001;
            TempData["b"] = 101;
            TempData.Keep();
           
            return View();
        }
        public ActionResult Second()
        {
           // TempData.Remove("b");
            return View();
        }
    }


index.html:-

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@{
    int b = ViewBag.a + 1;
}
value of b = @b

@{
    
    int c = int.Parse(ViewData["rno"].ToString()) + 1;
}
value of c = @c
@{
    int d = int.Parse(TempData["b"].ToString()) + 1;
    
}

value of d = @d

public class TestObjectController : Controller
    {
        //
        // GET: /TestObject/

        public ActionResult Index()
        {
            ViewBag.a = 10;
            ViewData["rno"] = 1001;
            TempData["b"] = 101;
            TempData.Keep();
            return RedirectToAction("Second");
           
        }
        public ActionResult Second()
        {
           // TempData.Remove("b");
            return View();
        }
    }


second.cshtml:-


<h2>Index</h2>

@{
    //int b = ViewBag.a + 1;
}

@{
    
   // int c = int.Parse(ViewData["rno"].ToString()) + 1;
}

@{
    int d = int.Parse(TempData["b"].ToString()) + 1;
    
}

value of d = @d












Tags

Post a Comment

0Comments

POST Answer of Questions and ASK to Doubt

Post a Comment (0)