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
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
Curtir tópico
+ 0
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!
Falou!
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
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
Clique aqui para fazer login e interagir na Comunidade :)