ASP.NET Core MVC交易表格Amount列始终显示相同数值问题求助
问题排查:数据库存储Amount正确但前端交易列表始终展示相同数值
问题现象
- 代码逻辑无明显报错,数据库已成功写入正确的
Amount数值,但前端拉取数据展示的交易列表中,Amount列始终显示相同数值 - 复现步骤:
- 在存款页面首次输入50美元提交,交易标签页正常显示50美元
- 后续提交60美元存款,数据库已正确存储60的数值,但交易历史标签页仍显示50,未读取数据库最新值
待排查代码范围
已提供对应代码如下:
- Account控制器代码
- Transaction视图代码
- Deposit视图代码
- 存款模型代码
- 交易模型代码
- Deposit DbContext代码
- Transaction DbContext代码
排查方向
- 查询缓存问题
检查交易列表查询代码是否开启了全局查询缓存、或者手动配置了未正确过期的缓存规则,确认EF Core查询是否漏加AsNoTracking()导致命中上下文缓存的旧实体。 - DbContext生命周期配置错误
检查注入的Transaction DbContext是否被配置为单例模式,单例上下文会长期持有旧的实体快照,不会主动读取数据库最新值,Web项目中DbContext应配置为Scoped生命周期。 - 前端缓存/状态管理问题
检查前端请求交易列表的接口是否被浏览器HTTP缓存命中,或者前端状态管理模块中交易列表数据仅在首次加载时赋值,后续新增存款后没有触发重新拉取逻辑。 - 视图渲染逻辑问题
检查Transaction视图中绑定Amount列的变量是否写死,或者循环渲染时始终取了数组首个元素的Amount值,而非当前迭代项的对应字段。 - 实体映射错误
检查交易模型的Amount字段是否错误添加了[NotMapped]特性,或者AutoMapper等映射工具配置了固定转换规则,导致所有实体映射后Amount都为首次取值。
内容的提问来源于stack exchange,提问作者Anime Zone
相关产品推荐
相关产品推荐

