Inquiridor
View Razor tipada com array e campo Boolean

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?
Todas as Respostas
-
-
-
-
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. -
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!