| 

.NET C# Java Javascript Exception

2
Was würdet ihr vorschlagen. Was ist besser / schlechter? Was ist globaler / viewgebundener?

Für mich sind beide irgendwie das gleiche, bis auf den kleinen Unterschied, dass ViewBag dynamic ist.
16.02.2011
phlow666 922 1 9
2 Antworten
2
Die Session ist auf den Benutzer gebunden und View-übergreifend, und dient der Speicherung von Daten, so lange der Benutzer angemeldet ist.

Der (die? / das?) ViewBag ist auf die einzelne View gebunden, und dient nur der Datenübertragung vom Controller in die View.
16.02.2011
Golo Roden 2,7k 3 9
Ok, gut. Dann hat die Session noch nicht ausgedient. Hatte schon so ne Vermutung da ja "View" in Viewbag vorkommt. Diese Info hat mich jetzt nur noch nicht in ner Doku "angesprungen".
phlow666 16.02.2011
Genau genommen ist ViewBag der Nachfolger von ViewData - nur mit einer neuen, dynamischen Schnittstelle für das zu Grunde liegende Dictionary, so dass man statt ViewData["Foo"] halt ViewBag.Foo schreiben kann.
Golo Roden 16.02.2011
Das hab ich schon gesehen. Bei der ersten Verwendung bin ich mir richtig "schlecht" vorgekommen. Werte in etwas eintragen, was Intellisense gar nicht anzeigt und es funktioniert! Verrückt.
phlow666 16.02.2011
Naja, "dynamic" halt ... :-/

Übrigens: Unter der Haube macht ein Zugriff auf das ViewBag einen Zugriff auf ViewData, so dass es de facto der gleiche Zugriff ist - nur halt in einer anderen Syntax.
Golo Roden 16.02.2011
Ja, sowas hatte Pawel unten schon geschrieben. Ich habe bisher dynamic noch nie verwendet. Aber ich werd mir das ganze mal jetzt im Zusammenspiel mit MVC mal näher zu Gemüte führen.
phlow666 16.02.2011
0
Wenn man in der neusten Version in die ViewData was schreibt es über das Viewbag zu selektieren

also ViewData["Foo"] = "Foo" im View dann ViewBag.Foo. Wurde wohl aus Kompatibilitätsgründen drin gelassen.

Grüße
16.02.2011
Pawel Warmuth 195 6
Das gute daran ist, dass man nicht die alten Projekte zwingend nachziehen muss.
phlow666 16.02.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH