I'm trying to pass some data into my Layout, but can't get it working. I've succesfully done this before, but this time, no matter what I'm trying, it just doesn't work.
I'm getting this error:
InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'System.Collections.Generic.List`1[DOOR.Core.Web.Models.DataTaxonomy.Object]', but this ViewDataDictionary instance requires a model item of type 'DOOR.Core.Web.Pages.DataTaxonomyTool.IndexModel'.
Anyone dealt with something similar in the past?
My Default.cshtml:
@model DOOR.Core.Web.Pages.DataTaxonomyTool.IndexModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "~/Pages/DataTaxonomyTool/Layout/LayoutTaxonomy.cshtml";
}
@for (char c = 'A'; c <= 'Z'; c++)
{
<ul style="list-style:none">
<li class="nav-item">
<a class="nav-link" data-toggle="collapse" data-target="#@c.ToString().ToLower()">@c</a>
<div id="@c.ToString().ToLower()" class="collapse">
@foreach (var item in Model.Object.OrderBy(x => x.ObjectName))
{
@if (item.ObjectName.StartsWith(c.ToString().ToLower()))
{
<ul style="list-style:none">
<li>@item.ObjectName</li>
</ul>
}
}
</div>
</li>
</ul>
}
My ViewComponent Class:
public class LayoutListsViewComponent : ViewComponent
{
DOOR.Core.Web.Models.ReportContext _context;
public LayoutListsViewComponent(DOOR.Core.Web.Models.ReportContext context)
{
_context = context;
}
public IList<Object> objects { get; set; }
public async Task<IViewComponentResult> InvokeAsync()
{
var objects = await _context.objects.ToListAsync();
return View(objects);
}
}
My Layout page:
addTagHelper*,DOOR.Core.Web
<!DOCTYPE html>
<html>
...
<vc:layout-lists></vc:layout-lists>
...