Array
(
)

Passando uma Lista do Controller para a View Asp.net MVC

Luciano
   - 25 mar 2015

Pessoal,
Estou recebendo o seguinte erro ao ler uma lista que é passada para a View :
" Referência de objeto não definida para uma instância de um objeto ".

<<Código no Controller >>:
#Código


 public ActionResult Login(LoginModel model, string ReturnUrl)
                {

                    Acesso acesso = new Acesso();
            

                    if (!this.ModelState.IsValid) //Primeiro verifica se o modelo não é valido
                    {
                        return this.View(model); // Caso não seja válido retorna para a view Login
                    }

                    // ASP.Net *Membership é um provider da microsoft para garatir a segurança da aplicação, utilizado no gerenciamento de regras de acesso
                    //Método responsável pela validação do usuário e senha digitados

                    if (Membership.ValidateUser(model.username, model.password))
            
                    {

                        //Verifica se a opção de lembrar senha para guardar o login e senha em cookie local para não precisar digitar novamente
                     FormsAuthentication.SetAuthCookie(model.username, model.remembrerMe);



                        //Caso sejam válidos (Login e senha) pega o endereço da RedirectTOAction para redirecionar o usuário Logado, no caso (principal/Index)
                        if (this.Url.IsLocalUrl(ReturnUrl) && ReturnUrl.Length > 1 && ReturnUrl.StartsWith("/")
                            && !ReturnUrl.StartsWith("//") && !ReturnUrl.StartsWith("/\"))
                        {
                            return this.Redirect(ReturnUrl);

                        }

                  
                        Session["Login"] = model.username;

                   
              
                       List<AcessoModelo> listadeAcessos =   acesso.verificaAcesso(Login);   // List recebe a lista pelo método verificaAcesso()


                    


                        return this.RedirectToAction("Principal", "Login", listadeAcessos); // Redireciona para a action Index do controller principal, com a lista de todos os objetos

               

                    }

                    this.ModelState.AddModelError(string.Empty, "Login ou senha inseridos estão incorretos");
                    // Mensagem que será mostrada caso o login ou senha estejam incorretos
                    // Mensagem será mostrada no ViewBag.Message do Formulário = "Login ou senha inseridos estão incorretos";



                  

                    return this.View(model);
                }




<<Código da View >>:
#Código

@model IEnumerable<Aplicacoes.Dominio.AcessoModelo>

<html>
<head>

</head>
<body>

   <section class="post">

            @*AQUI FAÇO UM FOREACH NO MODEL PEGANDO A LISTA DE ÍTENS*@
                     
                         @foreach (var item in Model)
                        {
                            <span>
                                @item.idAplicacao
                            </span>
                                
                        }
             

                </section>

</body>
</html>


Aí ele pára justamente no ponto onde inicia o foreach e apresenta a mensagem de Erro : Referência de objeto não definida para uma instância de um objeto

Luciano
   - 26 mar 2015

Alguém para me ajudar ????

Crist
   - 13 abr 2015

Amigo,

Eu já tive este erro, ele ocorre quando você tentar fazer um @foreach é não tem nenhum registro para ser mostrado.
tentar fazer desta forma:

exemplo:

#Código


    @if (Model.Count() > 0)
    {
        foreach (var item in Model)
        {

        <li><a href="@Url.Action("AtualizaCliente", "ConsultaCliente", new { id = item.idcliente })">@Html.DisplayFor(c => item.nome) </a></li>

        }
    }
    else
    {
       <label>Você não tem dados cadastrados.</label>
    }