我尝试搜索SO,但也许我没有使用正确的搜索字词。
基本上,我首先需要在我的控制器中生成一个包含以下内容的列表:
Item 1: name = 'cat', category = 'animal'
Item 2: name = 'dog', category = 'animal'
Item 3: name = 'tulip', category = 'plant'
等等。因此,当我看到我的观点时,我可以做到:
@foreach (item in list)
{
if (category == "animal")
{
@item.name<br />
}
}
如何在控制器中构建列表?
答案 0 :(得分:2)
与构建任何列表的方式相同。我们假设您有一个定义项目的课程,我们将其称为MyModel
。 (在这种情况下,我假设它具有字符串属性Name
和Category
。)然后您构建该对象的列表:
var models = new List<MyModel>();
您可以将任意数量的项目添加到该列表中:
models.Add(new MyModel { Name = "Cat", Category = "Animal" });
models.Add(...);
// etc.
然后将其发送到视图:
return View(models);
在视图中,您将其声明为模型类型:
@model List<MyModel>
然后可以在视图中迭代它:
@foreach (var item in Model)
{
if (item.Category == "animal")
{
@item.Name<br />
}
}
List<T>
与任何其他模型类型没有区别。您可以像任何其他模型一样构建一个并将其发送到您的视图。
修改:就本例而言,MyModel
类是:
public class MyModel
{
public string Name { get; set; }
public string Category { get; set; }
}
当然,您希望使用比MyModel
更有意义的名称。