Pesquisar

Acompanhe

http://twitter.com/dfcdaniel Feed

Posts recentes

Comentários recentes

Dica Html Helper DropDownList e ViewData

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

Comments

JOSE PAULO JORGE DOS SANTOS br

Sunday, September 06, 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

Sunday, September 06, 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

Thursday, November 12, 2009 6:48 PM

great,that what im looking for

Add comment


 

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]