366 Stimmen

Was ist der Unterschied zwischen ViewData und ViewBag?

Ich sah die ViewBag in MVC 3. Was ist der Unterschied zu ViewData in MVC 2?

-2voto

mamta Yadav Punkte 1

ViewBag

  1. Es gibt Type Object zurück.
  2. Es ist ein dynamic Eigenschaft von ControllerBase Klasse.
  3. ViewBag funktioniert nur mit .NET Framework 4.0 und höher.
  4. Es erfordert kein TypeCasting vor der Verwendung, da ViewBag Eigenschaft ist dynamic in der Natur.
  5. ViewBag gibt Dynamic Type Object zurück und seine Eigenschaften sind auch dynamic .
  6. Es ist etwas schneller als ViewData .

AnsichtDaten

  1. Sie gibt eine Sammlung von Schlüssel-Wert-Wörterbuchpaaren zurück.
  2. ViewData ist ein Wörterbuchobjekt und eine Eigenschaft von ControllerBase Klasse.
  3. ViewData ist schneller als ViewBag .
  4. Typkonvertierungscode ist beim Aufzählen erforderlich, da es sich um ein Dictionary Pair Collections handelt.
  5. ViewData gibt das Objekt zurück (der Typ des Schlüssel-Wert-Paares und der Wert sind vom Typ Objekt, so dass Sie vor der Verwendung einen Cast vornehmen müssen)

public ActionResult Index()
{   
    ViewBag.Name = "";   
    return View();
}

public ActionResult Index()
{  
    ViewData["Name"] = "Arun Prakash";  
    return View();
}

Aufruf in der Ansicht

@ViewBag.Name    
@ViewData["Name"]

-2voto

Abhishek Gahlout Punkte 2824

ViewBag und ViewData sind zwei Mittel, die verwendet werden, um Informationen vom Controller zur Ansicht in ASP.Net MVC zu übergeben. Das Ziel der Verwendung beider Mechanismen ist es, die Kommunikation zwischen Controller und View zu ermöglichen. Beide haben eine kurze Lebensdauer, d.h. der Wert von beiden wird null, sobald die Umleitung stattgefunden hat, d.h. sobald die Seite von der Quellseite (wo wir den Wert von ViewBag oder ViewData gesetzt haben) zur Zielseite umgeleitet wurde, werden sowohl ViewBag als auch ViewData null.

Trotz dieser Ähnlichkeiten sind beide (ViewBag und ViewData) zwei verschiedene Dinge, wenn wir über die Implementierung von beiden sprechen. Die Unterschiede sind wie folgt:

1.) Wenn wir beide Implementierungen analysieren, werden wir feststellen, dass ViewData eine Dictionary-Datenstruktur ist - ein Dictionary of Objects, das von ViewDataDictionary abgeleitet ist und auf das man über Strings als Schlüssel zu diesen Werten zugreifen kann, während ViewBag die in C#4.0 eingeführten dynamischen Funktionen nutzt und eine dynamische Eigenschaft ist.

2.) Beim Zugriff auf die Werte von ViewData müssen wir die Werte (Datentypen) typisieren, da sie als Objekte im ViewData-Wörterbuch gespeichert sind, aber es besteht keine solche Notwendigkeit, wenn wir auf den Wert im Fall von ViewBag zugreifen.

3.) In der ViewBag können wir den Wert wie folgt einstellen:

      ViewBag.Name = "Value"; 

und können wie folgt zugreifen:

          @ViewBag.Name

Im Falle von ViewData können die Werte wie folgt eingestellt und abgerufen werden: ViewData wie folgt einstellen:

ViewData["Name"] = "Value";

und Zugriff auf den Wert wie folgt

 @ViewData["Name"] 

Für weitere Einzelheiten klicken Sie hier:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X