You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8 Razor页面InvalidOperationException模型类型不匹配问题

问题分析与解决

错误核心:你代码里明确传了列表、视图也声明了接收列表,但运行时加载的视图却要求单个Category。大概率是以下几种情况导致:

1. 控制器加载了错误的同名视图

检查项目结构:

  • 确认Views/Categories/Index.cshtml是你编写的、声明了@model List<Category>的视图
  • 查看Views/Shared目录下是否存在同名的Index.cshtml,如果该视图的@model是单个Category,控制器会优先加载共享视图,引发类型不匹配错误

解决:删除或重命名Shared目录下的Index.cshtml,或者在控制器返回视图时指定完整路径:

return View("~/Views/Categories/Index.cshtml", cate);

2. 视图编译缓存未更新

修改视图的@model后,ASP.NET的视图缓存可能未同步更新,导致仍使用旧模板运行。

解决:

  • 直接重启整个项目
  • 若重启无效,删除项目目录下obj/Debug/netX.X/Views文件夹(X.X为你的.NET版本),再重新编译运行

额外优化建议(非报错原因,但需修正)

你的仓储代码里所有Category的CategoryID都设为1,这会导致后续编辑功能出现逻辑问题,建议修正为唯一ID:

private static List<Category> _categories = new List<Category>()
{
    new Category {CategoryID = 1,Name = "Foods",Description = "it is food category"},
    new Category {CategoryID = 2,Name = "Drink",Description = "it is drink category"},
    new Category {CategoryID = 3,Name = "Meat",Description = "it is meat category"},
};

验证步骤

  1. 确认当前编辑的Index.cshtml路径正确,且@model声明无误
  2. 重启项目后重新访问Categories/Index

内容的提问来源于stack exchange,提问作者SasaN AndeH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:42:43