none
retornar varios ckeckbox preenchido mvc3 RRS feed

  • Pergunta

  • Bom dia!

    Estou tentando retornar varios checkbox preenchido na hora de editar uma cadastro, mas não estou conseguindo. Segue o exemplo:

    um usuario pode escolher entre uma região ou mais regiões. para cadastrar ok, mas quando vou editar precisava trazer todas as regiões que ele escolheu no cadastro preenchida, alguem teria uma solução. Estou tentando desta forma está me trazendo o erro.

    'System.Linq.IQueryable<VendoGafisa.Models.Regiao>' does not contain a definition for 'Equals'

    Na minha viewmodel está assim :

    public  IQueryable<Regiao> regioesImobiliaria { get; set; }

    na controller assim:

    ViewBag.ListaRegioes = _regiao.GetAll();

    e Na view assim:

    <table>
            <tr><th> Regiões de interesse </th></tr>
                @foreach (var item in ViewBag.ListaRegioes)
                 {  
                    <tr>
    
                    <td> @item.Nome </td><td><input name="regioes" value="@item.Id" @(Model.regioesImobiliaria.Equals(item.Id) ? "checked=checked" : "" ) type="checkbox" /></td>
                    @*<td> @item.Nome </td><td><input name="regioes" value="@item.Id" type="checkbox" /></td>*@
                            
                    </tr>
                 }
            </table>

    O erro ocorre no value="@item.Id"

    Grato,

    segunda-feira, 23 de abril de 2012 13:46

Todas as Respostas

  • Você está tentando comparar uma lista do tipo IQueryable com um inteiro. Isso não vai funcionar.

    Você vai ter que fazer dois loops para verificar se o item está checado ou não

    <table>
            <tr><th> Regiões de interesse </th></tr>
                @foreach (var item in ViewBag.ListaRegioes)
                 {  
                    <tr>
                    <td> @item.Nome </td><td>
                   @(foreach var itemRegiao in Model.regioesImobiliaria){
    <input name="regioes" value="@item.Id" @(itemRegiao.Id == item.Id ? "checked=checked" : "" ) type="checkbox" /></td>
                    @*<td> @item.Nome </td>
    }<td><input name="regioes" value="@item.Id" type="checkbox" /></td>*@
                            
                    </tr>
                 }
    </table>


    segunda-feira, 23 de abril de 2012 19:19
    Moderador
  • Valeu pela força eu conseui assim,

     @foreach (var item in ViewBag.ListaRegioes)
                 {  
                    <tr>
                        <td> @item.Nome </td><td><input name="regioes" value="@item.Id" @(ViewBag.Regioes.Contains(item.Id) == true ? "checked=checked" : "") type="checkbox" /></td>
                    </tr>
                 }

    terça-feira, 24 de abril de 2012 13:19