我在尝试使用列表脚手架从数据库中获取数据时遇到错误。错误和代码如下。
我的模型:
@IBAction func create(_ sender: Any) {
if (addName.text != "" && addDescription.text != "") {
items.append(addName.text!)
addName.text = ""
givenDescription.append(addDescription.text!)
addDescription.text = ""
}
self.navigationController?.popViewController(animated: true)
我的控制器:
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());
}
}
}
执行时出现错误:
传递到字典中的模型项的类型为'System.Collections.Generic.List 1 [ShimbaSchool.Models.Staff]',但是此字典需要模型类型为'System.Collections.Generic.IEnumerable 1 [ ShimbaSchool.Models.EventMessageDepartment]”。
请帮助我解决这种情况并了解逻辑,以便下次再也没有。另外,尽管视图是在同一项目的不同布局上呈现的,但我将同一模型与另一个控制器一起使用,并且可以正常工作。
答案 0 :(得分:1)
实际上,您从控制器方法传递到视图的列表是List of EventMessageDepartment
,而不是List of Staff
。请正确检查它,并将List of Staff
从控制器方法传递到视图。
如果确定要传递给视图的数据是List<ShimbaSchool.Models.Staff>
,请检查Layout.cshtml
页。可能有@model IEnumerable<EventMessageDepartment>
被引用。
答案 1 :(得分:0)
您尝试以下吗?
public ActionResult Index()
{
return View(db.StaffTable.AsEnumerable());
}