Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Por quê o uso da ViewData e não da ViewBag?

Bom dia, Marcelo, tudo na paz?

Por quê o uso da ViewData para transportar os dados da camada de controller para view e não o uso da ViewBag?

3 respostas

Opa, como é fds, vou tentar adiantar a resposta aqui.. dei uma googlada e caí nessa discussão => https://github.com/aspnet/Docs/issues/803

Parece que, no fim, é apenas questão de gosto.. eu chutaria que usar o viewbag tende a ser mais limpo.

Obrigado, Alberto Souza! Dei uma navegada também pelo google...encontrei um comentário muito bem explicado. Segue abaixo para caso alguém tenha dúvida também:

ViewData -> É um dicionário de objetos derivado de ViewDataDictionary e é acessível utilizando strings como chaves.

ViewBag -> É uma propriedade dinâmica baseada na funcionalidade “dynamic” do C# 4.0 Requer typecasting (conversão) quando associada a tipos complexos. Não necessita de conversão para tipos complexos.

Resumindo, ViewData e ViewBag possuem a mesma proposta, porém o ViewBag está disponível a partir do ASP.Net MVC 3, enquanto o ViewData existe desde a primeira versão.

OBS: O ViewData é um wrapper, uma implementação do ViewBag, pois utiliza o ViewBag internamente, portanto: Por este motivo ViewData é mais rápido que o ViewBag, porém essa diferença de velocidade é mínima, não é necessário deixar de usar o ViewBag por este motivo.

Caros colegas, caso esteja equivocado por favor, corrija-me.

solução!

Olá, Ivanostik! Você já disse tudo sobre as diferenças entre o ViewBag e ViewData. Usamos o ViewData no curso somente para definir os títulos das páginas, e apenas porque o ViewData já estava incluso no template das views do projeto.