Description de enum com o @Html.ENumDropDownListFor, no MVC 5

11/06/2014

0

Boa tarde,

estou iniciando meus estudos em c#.net com MVC 5, e tô com esse problema, que não estou conseguindo solucionar. Já procurei, mas não achei nenhuma resposta.
Eu vi que, com o MVC 5, a microsoft disponibilizou já, o #Html.ENumDropDownListFor (pelo que eu percebi, antigamente, as pessoas criavam seus helpers, para esse mesmo componente).

O que eu não estou conseguindo é trazer, ao invéz do item do enumerador, a Description. Eu vi que, em todos os exemplos que procurei, que o pessoal criava uns métodos (em nenhum deles, explicando), e por fim, acabei não entendendo.

Alguém sabe se, junto com esse @Html.ENumDropDownListFor que a microsoft disponilibilizou, já existe alguma forma nativa de trazer o Description? Se não, alguém teria algum tutorial que explique a forma correta de trazer eles e, implementar na View?

Exemplo:

public enum Exemplo: int
{
[Description("Exemplo número 1")]
Exemplo1 = 1,

[Description("Exemplo número 2")]
Exemplo2 = 2
}


Quando na View eu chamo o @Html.ENumDropDownListFor, passando esse enum, ele me retorna no combo "Exemplo1" e "Exemplo2", mas eu queria "Exemplo número 1" e "Exemplo número 2".

Desde já agradeço,
João Paulo
João Effting

João Effting

Responder

Post mais votado

11/06/2014

A quem interessar, o @Html.EnumDropDownListFor não lista o [Description("Exemplo número 1")], mas, se usar no lugar do Description, o [Display(Name="Exemplo número 1")], no combo box, aparece o texto do Display :)

Falou!

João Effting

João Effting
Responder

Mais Posts

12/06/2014

João Effting

Complementando, depois de ter feito o que disse acima, tive outro problema, só que agora na View, onde eu colocava o @Html.DisplayFor(MeuEnumerador), e não mostrava nem o Display(Name=""), nem o Description, só o enumerador mesmo.

Ai, achei uma solução fácil (amém): Baixei um Helper pelo NuGet chamado "Enum Helper" (ou algo do tipo .. procurei por enum só), e quase lá no final da busca, achei um helper com aquele método GetDescription já implementado e pronto pra uso.

Ai, mudei o meu código para @Html.DisplayFor(MeuEnumerador.GetDescription()) , mas, agora, dava erro. Então, depois de quebrar um pouco a cabeça e não achar resposta, simplesmente pensei em retirar o @Html.DisplayFor, e deixar só @Model.MeuEnumerador.GetDescription()

e ai, graças a uma força divina, consegui o que queria.

Sei que pode parecer coisa simples, mas eu perdi algumas horas com esse problema >.<

Então vou deixar aqui registrado, para caso alguém mais tenha esses dois problemas, ou, para caso eu esqueça haha.

Abs,
João
Responder

12/06/2014

Joel Rodrigues

Opa, João. Parabéns pela atitude e obrigado por compartilhar com todos a solução encontrada. Esse tipo de ação é muito importante para o fórum.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar