ASP.NET MVC中Controller向View传List类型报错问题排查
错误原因及解决方法
核心错误原因
你在View里写的@model List<GetAll>完全搞错了类型——GetAll只是你控制器里获取数据的变量名/方法名,根本不是一个实体类型。实际你定义的实体是Institution,控制器返回的也是这个实体的集合,所以View找不到GetAll类型是必然的。
具体修复步骤
修正View的模型声明
把View顶部的模型声明改成对应Institution类型,记得加上实体所在的完整命名空间(比如你的实体放在YourProject.Models下):@model List<YourProject.Models.Institution>要是嫌每次写命名空间麻烦,可以在View顶部先导入命名空间再简化:
@using YourProject.Models @model List<Institution>确认控制器返回的模型匹配
检查HomeController的Index方法,确保返回的确实是Institution的集合,示例代码如下:public ActionResult Index() { // 这里getAll是变量名,不是类型名 List<Institution> getAll = YourDataAccess.GetAllInstitutions(); return View(getAll); }额外排查项
- 确保
Institution类的访问修饰符是public,否则View无法访问这个类型 - 如果想用
IEnumerable替代List,直接把模型声明改成@model IEnumerable<YourProject.Models.Institution>即可,两者是兼容的,不用额外配置
- 确保
内容的提问来源于stack exchange,提问作者Ahmet Demir
相关产品推荐
相关产品推荐

