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>
}