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

ASP.NET MVC视图无法接收传入列表,报错‘Categories不存在于当前上下文’

解决“Categories不存在于当前上下文”的报错

嘿,这个问题其实是视图和控制器之间的模型传递没匹配好,我帮你拆解一下问题和修复步骤:

核心问题分析

你在控制器里传给视图的是一个List<CheeseCategory>集合,但视图里的@model声明的是单个CheeseCategory对象,而且视图里直接用了控制器里的categories变量——这在ASP.NET MVC里是行不通的,视图无法直接访问控制器的局部变量,必须通过声明的Model来接收传递的数据。

修复步骤

1. 修正视图的模型声明

把视图顶部的@model改成集合类型:

@model List<CheeseMVC.Models.CheeseCategory>

如果你的视图已经通过_ViewImports.cshtml引用了CheeseMVC.Models命名空间(比如加了@using CheeseMVC.Models),可以简化成:

@model List<CheeseCategory>

2. 视图中通过Model访问数据

把视图里的categories换成Model,控制器传递的集合会被绑定到视图的Model属性上,示例代码如下:

@if (Model != null)
{
    foreach (var category in Model)
    {
        <p>@category.Name</p> <!-- 假设CheeseCategory有Name属性 -->
    }
}

3. 额外检查(可选)

如果调整后仍有问题,确认:

  • 控制器里的context已经正确注入或实例化,能正常获取Categories数据
  • 视图顶部有没有引用CheeseMVC.Models命名空间,避免类型找不到的问题

这样调整后,视图就能正确接收控制器传递的集合并显示数据啦!

内容的提问来源于stack exchange,提问作者Dylan K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:27:08