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

.NET控制器传字符串列表到视图报错:foundEmails不存在于当前上下文

解决视图中无法访问foundEmails的问题

你这里的问题出在MVC控制器与视图的模型传递逻辑上——你在控制器里把foundEmails列表作为模型传给了视图,但视图并不知道你在控制器里定义的这个变量名,它只会通过内置的Model属性来接收传递过来的模型数据。

下面是两种不需要额外方法的解决方案,直接就能实现你的需求:

方案1:直接使用Model属性(推荐)

这是MVC传递模型的标准写法,只需要修改视图代码,遍历Model即可。如果想获得IDE智能提示和类型检查,可以在视图顶部声明模型类型:

@model List<string> <!-- 声明视图的模型类型,可选但推荐添加 -->
@{
    ViewBag.Title = "View";
}
<h2>View</h2>
@foreach(var item in Model) {
    <p>@item</p>
}

你的控制器代码完全不需要改动,return View(foundEmails);已经正确把列表作为模型传递给视图了。

方案2:将Model赋值给foundEmails变量

如果你坚持想在视图里用foundEmails这个变量名,可以在视图的代码块里把Model转换后赋值给它:

@{
    ViewBag.Title = "View";
    // 把传递过来的模型转换为List<string>,赋值给foundEmails
    var foundEmails = Model as List<string>;
}
<h2>View</h2>
@if(foundEmails != null) { <!-- 加上空检查避免空引用错误 -->
    foreach(var item in foundEmails) {
        <p>@item</p>
    }
}

报错原因说明

错误The name 'foundEmails' does not exist in the current context是因为视图的上下文里并没有定义foundEmails这个变量——控制器里的变量是局部变量,不会直接暴露给视图,只有传递给视图的模型会通过Model属性被访问到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:03