Mvc控制器类型转换报错求助:无法隐式转换List类型
Mvc控制器类型转换错误排查与解决
问题说明
报错信息:无法隐式转换类型‘System.Collections.Generic.List’为‘System.Collections.Generic.List
涉及代码
public async Task<ActionResult> Index() { DateTime StartDate = DateTime.Today.AddDays(-6); DateTime EndDate = DateTime.Today; List<Transaction> SelectedTransaction = await _context.Transaction. Include(x => x.Category) .Where(y => y.Date > StartDate && y.Date < EndDate) .ToListAsync(); return View(); }
排查方向与解决方法
- 检查变量声明与赋值匹配
你贴出的代码里,SelectedTransaction声明为List<Transaction>,ToListAsync()返回的也是List<Transaction>,本身不会触发这个错误。大概率是实际代码里不小心把List<Transaction>写成了List<List>,或者有其他代码将List<List>类型的对象赋值给了这个变量。 - 确认DbSet类型
检查_context.Transaction的定义,确保它是DbSet<Transaction>类型,避免查询源头的类型就不对。 - 检查View传递的数据
如果错误出现在返回View的环节,可能是你返回时传递了错误类型的集合。比如原本应该传SelectedTransaction,却误传了一个List<List>类型的数据。正确写法应为:return View(SelectedTransaction); - 排查using指令
确保代码文件顶部引用了System.Collections.Generic,不过大部分Mvc项目会默认包含这个命名空间,这一项优先级较低。
内容的提问来源于stack exchange,提问作者Muneer Zaatreh
相关产品推荐
相关产品推荐

