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