t

Comentários recentes

Dica Html Helper DropDownList e ViewData

Postado por Daniel Fonseca Castro - Tuesday, August 11, 2009 12:14 PM

Você pode preencher o Html.DropDownList utilizando o ViewData com um objeto SelectList sem passar esse objeto para o Helper explicitamente ,você precisa apenas dar o mesmo nome para o ViewData e Html.DropDownList, para montar um exemplo vou alterar o código desse post http://www.danielfonsecacastro.com.br/post/2009/07/31/DropDownList-com-AJAX-em-ASPNET-MVC.aspx.

Vamos começar alterando a View, veja como fica o código atualizado.

Código atualizado da View Index

Imagem 1 - Código atualizado da View "Index"

O único ponto alterado esta em destaque na imagem acima, note que utilizei a sobrecarga que recebe o nome e um valor padrão para o select.

Agora só falta alterar o nome do ViewData de “SelectList” para o nome definido no Html.DropDownList que é “CategoryId” , veja como fica o código do Controller “Home”.

public ActionResult Index()
{
    ViewData["CategoryID"] = new SelectList(context.Categories, "CategoryID", "CategoryName");
    return View();
}

Note que se não existir um ViewData definido uma exceção do tipo InvalidOperationException será lançada pelo Helper.

Pronto você pode rodar o projeto que tudo estará funcionando como antes, a primeira vista isso pode deixar o código confuso principalmente se você olhar somente a View,mais acredito que isso não é um problema, baixe o fonte com exemplo.

Daniel Fonseca Castro

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: ASP.NET MVC

Related posts

  • JOSE PAULO JORGE DOS SANTOS
    JOSE PAULO JORGE DOS SANTOS
    06 Sep 2009 2:29 PM
    Daniel, achei muito bom o seu exemplo, estou começando agora a estudar MVC e com exemplos como o seu que podemos começar a entender, como trabalhar com essa nova forma de desenvolver, principalmente quem esta desde 2001 trabalhando com WebForms, de certa forma toma um susto com esse framework.
  • Daniel Fonseca Castro
    Daniel Fonseca Castro
    06 Sep 2009 2:52 PM
    Olá Jose,

    A idéia é essa mesmo compartilhar e aprender junto, por que sozinho fica difícil de acompanhar todas essa evolução!

    Abraços,
    Daniel Fonseca Castro
  • bukmacher
    bukmacher
    12 Nov 2009 6:48 PM
    great,that what im looking for

Add comment


 

  Country flag