要显示的.NET显示控制器列表

时间:2018-02-01 11:06:02

标签: c# .net asp.net-mvc

我正在测试一个方法,我只想将列表显示在视图中。我知道列表包含数据,因为我能够通过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>
}

2 个答案:

答案 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对象等,但它可以使您的代码有点混乱。干杯