【发布时间】:2019-02-28 23:52:28
【问题描述】:
我正在尝试将一些数据传递到我的布局中,但无法正常工作。我以前成功地做到了,但这一次,无论我尝试什么,它都不起作用。
我收到此错误:
InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“System.Collections.Generic.List`1[DOOR.Core.Web.Models.DataTaxonomy.Object]”,但此 ViewDataDictionary 实例需要类型为模型项'DOOR.Core.Web.Pages.DataTaxonomyTool.IndexModel'。
过去有人处理过类似的事情吗?
我的 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>
}
我的 ViewComponent 类:
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);
}
}
我的布局页面:
addTagHelper*,DOOR.Core.Web
<!DOCTYPE html>
<html>
...
<vc:layout-lists></vc:layout-lists>
...
【问题讨论】:
标签: c# asp.net-mvc razor