none
View Razor tipada com array e campo Boolean RRS feed

  • Pergunta

  • Olá.
    Fiz um teste, pois vou precisar disso, mas não obtive bom resultado.

    Tenho uma classe pequena UsuarioPermissaoItemView onde tenho: Código, Descrição e OK (boolean).

    Tenho um objeto UsuarioPermissaoView onde tenho os dados básico do usuário e uma propeidade Permissoes do tipo: List<UsuarioPermissaoItemView>.

    Na hora de renderizar na View fica show de bola. O campo OK do item eu coloquei um CheckBoxFor<> e fica perfeito. O problema é que na hora do POST, a controladora recebe o objeto UsuarioPermissaoView perfeito, porém a propriedade Permissoes (List<UsuarioPermissaoItemView>) não veio preenchida, veio como Null.

    Como vocês fazem neste caso?
    sexta-feira, 12 de abril de 2013 18:21

Todas as Respostas

  • Deixa eu ver se entendi.

    Vc quer q a Lista venha preenchida? Mas vc esta dando valores para ela?


    Paulo Marcelo Dalbosco

    sexta-feira, 12 de abril de 2013 18:41
  • Sim, eu quero que no POST o array já venha com o valor do checkbox já ajustado, se é que foi ajustado, mas a coleção no POST vai como NULL.

    sexta-feira, 12 de abril de 2013 18:50
  • Ele vai como Null?

    Tem algo errado, la na propriedade ele esta como Boolean? Pq se ele for Boolena não tem como ser NULL, ou é true ou false.


    Paulo Marcelo Dalbosco

    sexta-feira, 12 de abril de 2013 18:57
  • Com FOREACH não foi, com for foi na boa.

    Veja

    @for (int i = 0; i < ItensPermissao.Count ; i++) 
        {
                
            <tr>            
                <td style="width: 100%">
                    @Html.HiddenFor(model => model.Permissoes[i].Codigo)
                    @Html.DisplayFor(model => model.Permissoes[i].Descricao)
                </td>
                <td>                
                    @Html.EditorFor(modelPermissoes => modelPermissoes.Permissoes[i].OK)
                </td>
            </tr>
        }

    O ruim é que o DisplayFor não manda o valor de volta no POST.  Neste caso não preciso mas num futuro não queria por um textbox só pra mandar o valor.
    sexta-feira, 12 de abril de 2013 20:18
  • Você está querendo enviar uma coleção de itens, provavelmente está fazendo alguma coisa errada... de uma olhada nesse post, http://stackoverflow.com/questions/6585585/mvc-binding-to-model-with-list-property-ignores-other-properties o cara está tendo o mesmo problema que o seu. No seu caso parece não estar funcionando porque falta propiedade no collection, experimente deixar o descrição como EditorFor ao invés de DisplayFor.

    Ao infinito e além!

    sábado, 13 de abril de 2013 12:22