Olá, nas páginas Livros/Lendo e Livros/Lidos está dando erro de NullReferenceException
NullReferenceException: Object reference not set to an instance of an object.
AspNetCore._Views_Livros_lista.<ExecuteAsync>b__8_1() in lista.cshtml
-
<meta charset="utf-8" />
<title></title>
</head>
<body>
<ul>
@foreach (var livro in ViewBag.Livros)
{
<li>@livro.Titulo - @livro.Autor</li>
}
</ul>
</body>
</html>
Classe LivrosController:
using Alura.ListaLeitura.App.Negocio;
using Alura.ListaLeitura.App.Repositorio;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
namespace Alura.ListaLeitura.App.Logica
{
public class LivrosController : Controller
{
public IEnumerable<Livro> livros { get; set; }
public string Detalhes(int id)
{
var _repo = new LivroRepositorioCSV();
var livro = _repo.Todos.First(l => l.Id == id);
return livro.Detalhes();
}
public static string CarregaLista(IEnumerable<Livro> livros)
{
var conteudoDoArquivo = HTML.HTMLUtils.CarregaArquivoHTML("para-ler");
foreach (var livro in livros)
{
conteudoDoArquivo = conteudoDoArquivo.Replace("#NOVO-ITEM#", $"<li>{livro.Titulo} - {livro.Autor}#NOVO-ITEM#");
}
return conteudoDoArquivo.Replace("#NOVO-ITEM#", string.Empty);
}
public IActionResult ParaLer()
{
var _repo = new LivroRepositorioCSV();
ViewBag.Livros = _repo.ParaLer.Livros;
return View("lista");
}
public IActionResult Lendo()
{
var _repo = new LivroRepositorioCSV();
ViewBag.Lendo = _repo.Lendo.Livros;
return View("lista");
}
public IActionResult Lidos()
{
var _repo = new LivroRepositorioCSV();
ViewBag.Lidos = _repo.Lidos.Livros;
return View("lista");
}
}
}
View lista.cshtml:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<ul>
@foreach (var livro in ViewBag.Livros)
{
<li>@livro.Titulo - @livro.Autor</li>
}
</ul>
</body>
</html>