🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
3 messages
3 total messages Started by KO Sun, 23 Oct 2011 21:31
ViewBag i ViewData na przemian (MVC3)
#22258
Author: KO
Date: Sun, 23 Oct 2011 21:31
10 lines
1011 bytes
Witam.
Grupa praktycznie martwa, ale może ktoś tu jeszcze zagląda i zna
odpowiedź:)

Dane wstawione do ViewData["Pole"] są dostępne Przez ViewBag.Pole

Pytanie: czy można na tym polegać? Jest gdzieś zagwarantowane, że tak jest
i będzie, czy to raczej jakiś efekt uboczny który może kiedyś zniknąć?

dzięki
Re: ViewBag i ViewData na przemian (MVC3)
#22259
Author: Łukasz 'Maly' Ostrowski
Date: Mon, 24 Oct 2011 07:19
37 lines
2024 bytes
On Sun, 23 Oct 2011 21:31:19 +0000, KO wrote:
> Dane wstawione do ViewData["Pole"] są dostępne Przez ViewBag.Pole
> 
> Pytanie: czy można na tym polegać? Jest gdzieś zagwarantowane, że tak jest
> i będzie, czy to raczej jakiś efekt uboczny który może kiedyś zniknąć?

Można na tym polegać, ViewBag to Dynamic proxy do ViewData. Reflector
potwierdza ;-).

internal sealed class DynamicViewDataDictionary : DynamicObject
{
  public override bool TryGetMember(GetMemberBinder binder, 
       out object result)
  {
    result = this.ViewData[binder.Name];
    return true;
  }

  public override bool TrySetMember(SetMemberBinder binder, object value)
  {
    this.ViewData[binder.Name] = value;
    return true;
  }
  <...>
} 

Ale czy można polegać że w MVC 8 będzie tak samo, nie mogę się doszukać,
ale raczej nie spodziewałbym się zmian w tej materii.

Istotniejsze pytanie: po co w ogóle mieszać ViewData i ViewBag? Czy
mocno typowany Model nie jest wystarczający do 99% tasków? Z
doświadczenia zaobserwowałem że gołe ViewData/ViewBag służą z 
reguły do hackowania ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.eu/
Re: ViewBag i ViewData na przemian (MVC3)
#22260
Author: KO
Date: Mon, 24 Oct 2011 17:48
14 lines
1447 bytes
On Mon, 24 Oct 2011 09:19:05 +0200, Łukasz 'Maly' Ostrowski wrote:

> Istotniejsze pytanie: po co w ogóle mieszać ViewData i ViewBag? Czy
> mocno typowany Model nie jest wystarczający do 99% tasków? Z
> doświadczenia zaobserwowałem że gołe ViewData/ViewBag służą z 
> reguły do hackowania ;-)

W sumie racja, przemyślany model powinien wystarczyć, ale czasami jak
trzeba coś szybko przemycić do widoku to ViewStuff się przydaje.
Akurat tylko V mam w C#(razor) a MiC mam w F# gdzie nie ma dynamic więc
wsadzam do ViewData, chciałem się upewnić, że odbieranie tego przez ViewBag
jest bezpieczne.

dzięki, pozdro.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads