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?
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?
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.
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.