none
Helpers + DropDownList - Acessar dados do model RRS feed

  • Pergunta

  • Ola pessoal

    preciso criar um helper que acesse o Model (nem sei se este é o meio certo), ja tentei e nao consegui.

    ate consegui, mas nao acho que esteja da forma mais correta.

    segue o codigo

    @using PresentationWebLayer.Models
    
    @helper DropDownListUmc()
      {
      UmcModel umcModel = new UmcModel();
      
      @Html.DropDownList("umcID", umcModel.GetSelectListItem());
    }
    
    
    

    a questao é

    eu preciso criar um help que monte o DropDownList, porem, nao quero ficar chamando ele na tela e enviar os dados toda hora, por que isso é meio que fixo, entao, queria so criar o Helper que monte esse dropDownlist, mas to meio que apanhando
    se alguem puder me ajudar

    abs
    T+ pessoal.

     

     


    Carlos Eduardo Barbosa
    Analista de Sistema
    Business Intelligence
    WEB Intelligence

    carlos.ed.b@hotmail.com

    @carlos_ed_b

    Mercúrio – Comunicação Digital

    sábado, 26 de março de 2011 22:33

Respostas

  • Carlos,

    Você não precisa acessar o Model direto, pode criar um DropDownListHelper genérico, como este aqui:

    public static class DropDownListHelper
    {
      public static IEnumerable<SelectListItem> DropDownList<T>(List<T> itens, Func<T, string> text, Func<T, string> value, string selectedValue)
      {
        List<SelectListItem> selectListItems = new List<SelectListItem>();
        foreach (var item in itens)
        {
          SelectListItem selectListItem = new SelectListItem();
          selectListItem.Text = text(item);
          selectListItem.Value = value(item);
    
          if (value(item) != selectedValue)
          {
            selectListItem.Selected = false;
          }
    
          selectListItems.Add(selectListItem);
        }
        return selectListItems;
      }
    }
    

    Neste caso vc informa a lista de objetos, o valor e texto (Através de lambda expression) e ele gera a lista de SelectListItem pra você.

    Pode ser melhorado!

    Abraços


    Inside .NET - Aprender, compartilhar, desenvolver, socializar
    http://www.insidedotnet.com.br/
    andre.baltieri@insidedotnet.com.br
    terça-feira, 29 de março de 2011 13:41

Todas as Respostas

  • Você poderia explicar de uma outra forma?
    Não entendi.

    De mais detalhes sobre seu cenário


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    terça-feira, 29 de março de 2011 12:11
  • Carlos,

    Você não precisa acessar o Model direto, pode criar um DropDownListHelper genérico, como este aqui:

    public static class DropDownListHelper
    {
      public static IEnumerable<SelectListItem> DropDownList<T>(List<T> itens, Func<T, string> text, Func<T, string> value, string selectedValue)
      {
        List<SelectListItem> selectListItems = new List<SelectListItem>();
        foreach (var item in itens)
        {
          SelectListItem selectListItem = new SelectListItem();
          selectListItem.Text = text(item);
          selectListItem.Value = value(item);
    
          if (value(item) != selectedValue)
          {
            selectListItem.Selected = false;
          }
    
          selectListItems.Add(selectListItem);
        }
        return selectListItems;
      }
    }
    

    Neste caso vc informa a lista de objetos, o valor e texto (Através de lambda expression) e ele gera a lista de SelectListItem pra você.

    Pode ser melhorado!

    Abraços


    Inside .NET - Aprender, compartilhar, desenvolver, socializar
    http://www.insidedotnet.com.br/
    andre.baltieri@insidedotnet.com.br
    terça-feira, 29 de março de 2011 13:41