我正在测试一个方法,我只想将列表显示在视图中。我知道列表包含数据,因为我能够通过viewbag变量显示第一个结果。如果没有一个我能找到的其他帖子的方法,我怎么能这样做呢?感谢。
错误:
名称' foundEmails'在当前上下文中不存在
控制器操作:
public ActionResult EmailTest()
{
List<string> foundEmails = EmailScraper.Main();
return View(foundEmails);
}
查看:
@{
ViewBag.Title = "View";
}
<h2>View</h2>
@foreach(var item in foundEmails)
{
<p>@item</p>
}
答案 0 :(得分:0)
你必须改变观点:
@model List<string>
@{
ViewBag.Title = "View";
}
<h2>View</h2>
@foreach(var item in Model)
{
<p>@item</p>
}
答案 1 :(得分:0)
您的问题的答案是在视图顶部定义@model IEnumerable<string>
或@model ICollection<string>
或@model IList<string>
甚至@model List<string>
(我个人会选择第一个选项)文件。然后你可以在Model对象上运行foreach循环,如下所示:
@foreach(var item in Model)
{
<p>@item</p>
}
但是,对于更复杂的应用程序,我建议每个视图创建一个ViewModel类。想象一下,您从客户端收到一个要求,您需要在给定的屏幕上实现一些新的业务逻辑。这可能意味着您需要在该屏幕上显示30多个字段。当然,有很多方法可以将数据从控制器发送到视图,例如使用ViewBag对象等,但它可以使您的代码有点混乱。干杯