Quero exibir todas as categorias cadastradas no menu do site que fica no arquivo "_Topo" da pasta "Shared" e todas as noticias na view "Index" da pasta Home. A view "_Topo" e importada em todas as paginas do site, entao estou tendo dificuldade para fazer isso funcionar. Estou usando uma ViewModel mas ta me voltando o erro generico quando faco o @foreach (var cat in Model.Categorias) "Object reference not set to an instance of an object." Seguem os codigos do controller da Shared:
namespace Blog.Areas.Paginas_Blog.Controllers
{
public class SharedController : Controller
{
private CategoriaDAO categoriaDAO;
public SharedController(CategoriaDAO categoriaDAO)
{
this.categoriaDAO = categoriaDAO;
}
public ActionResult _Topo(DefaultModel model)
{
model.Categorias = categoriaDAO.Lista();
return View("~/Areas/Paginas_Blog/Views/Shared/_Topo.cshtml", model);
}
}
}
Codigo da view _Topo:
@model Blog.Areas.Paginas_Blog.Models.DefaultModel
<ul class="dropdown-menu" aria-labelledby="about-us">
@foreach (var cat in Model.Categorias)
{
<li><a href="#">@cat.Nome</a></li>
}
</ul>
E por fim minha ViewModel:
namespace Blog.Areas.Paginas_Blog.Models
{
public class DefaultModel
{
public IList<Noticia> Noticias { get; set; }
public IList<Categoria> Categorias { get; set; }
}
}