字典需要一个类型为'System.Collections.Generic.IEnumerable`1 [ShimbaSchool.Models.EventMessageDepartment]&
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典需要一个类型为'System.Collections.Generic.IEnumerable`1 [ShimbaSchool.Models.EventMessageDepartment]&相关的知识,希望对你有一定的参考价值。
我尝试使用列表脚手架从数据库中获取数据时遇到错误。错误和代码如下。
我的型号:
namespace ShimbaSchool.Models
[Table("tblStaff")]
public class Staff
[Key]
public int StaffId get; set;
[Required]
[DisplayName("Upload Image")]
public string ImagePath get; set;
[Required,MinLength(2),DisplayName("Staff Name")]
public string StaffName get; set;
[Required,MaxLength(250)]
[DisplayName("Teacher's Subject")]
public string StaffSpecialty get; set;
[NotMapped]
public HttpPostedFileBase ImageFile get; set;
我的控制器:
namespace ShimbaSchool.Controllers
public class StaffController : Controller
EventMessageDepartmentContext db = new EventMessageDepartmentContext();
public ActionResult Index()
return View(db.StaffTable.ToList());
风景:
@model IEnumerable<ShimbaSchool.Models.Staff>
@
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_MyLayout.cshtml";
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.ImagePath)
</th>
<th>
@Html.DisplayNameFor(model => model.StaffName)
</th>
<th>
@Html.DisplayNameFor(model => model.StaffSpecialty)
</th>
<th></th>
</tr>
@foreach (var item in Model)
<tr>
<td>
@Html.DisplayFor(modelItem => item.ImagePath)
</td>
<td>
@Html.DisplayFor(modelItem => item.StaffName)
</td>
<td>
@Html.DisplayFor(modelItem => item.StaffSpecialty)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new id=item.StaffId ) |
@Html.ActionLink("Details", "Details", new id=item.StaffId ) |
@Html.ActionLink("Delete", "Delete", new id=item.StaffId )
</td>
</tr>
</table>
在执行时我得到错误:
传递到字典中的模型项的类型为'System.Collections.Generic.List 1 [ShimbaSchool.Models.Staff]',但此字典需要类型为'System.Collections.Generic.IEnumerable 1的模型项[ShimbaSchool.Models .EventMessageDepartment]”。
请帮我修复这种情况并理解逻辑,以便下次没有。添加我使用相同的模型与另一个控制器,虽然视图是在同一个项目的不同布局上呈现的,但它的工作正常。
实际上,从控制器方法传递到视图的列表是List of EventMessageDepartment
,而不是List of Staff
。请正确检查并将控制器方法中的List of Staff
传递给视图。
如果您确保传递给视图的数据是List<ShimbaSchool.Models.Staff>
,那么请检查您的Layout.cshtml
页面。可能有@model IEnumerable<EventMessageDepartment>
被引用。
你试过以下吗?
public ActionResult Index()
return View(db.StaffTable.AsEnumerable());
以上是关于字典需要一个类型为'System.Collections.Generic.IEnumerable`1 [ShimbaSchool.Models.EventMessageDepartment]&的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据库表中的内容导入到python字典,建了一个表,想把表中的内容放到python的字典中
csharp 集合的并发,避免使用传统的锁(lock)机制等方式来处理并发访问集合。因此当有多个线程并发访问集合时,应首先考虑使用这些类代替System.Collections和System.Coll