quarta-feira, 2 de outubro de 2013

ViewBag vs ViewData vs TempData

Quando comecei a trabalhar com o plataforma MVC da microsoft, me deparei com um problema como passar os dados de uma ActionResult para a uma View, foi ai que descobri a  ViewBag só que também descobri a ViewData e TempData entao veja quais são suas diferenças para utilizar a que melhor te atende.


TempData - parecida com uma sessão de servidor, só que de curta duração, Porem possui um tempo de vida maior que o ViewBag e ViewData, o TempData dura desde sua criação até que seja chamado, então quando houver um request do TempData, ele se torna nulo. Uma dado criado em uma TempData atribuida em uma Controller persiste após um redirect entre actions que pode ser exibido em uma View. 

ViewData e ViewBag - são bem parecidas, porque são utilizadas para persistir dados entre a Controller e a View correspondente. A duração é apenas entre o envio através da Controller e a exibição na View, depois disso tornam-se nulas novamente e no caso de um redirect se tornam nulas. e suas diferenças são que a ViewData é acessada utilizando o nome entre chaves ViewData["ID_CLIENTE"] e a ViewBag é dinamica ViewBag.IdCliente, a ViewData necessita de conversão quando é de um tipo complexo e a ViewBag não necessita.