2017-04-21 49 views
0

我嘗試過搜索,但也許我沒有使用正確的搜索條件。發送一個列表來查看以迭代

基本上,我首先需要產生在我的控制器列表,將包含這樣的事情:

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 /> 
    } 
} 

如何在控制器中建立列表?

回答

2

與構建任何列表的方式相同。假設你有一個班級定義你的物品,我們將其稱爲MyModel。 (在這種情況下,我會假設它具有字符串屬性NameCategory。)然後你建立一個對象的列表:

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

+0

這給了我一個錯誤。 「無法找到類型或名稱空間MyModel(是否缺少使用指令或程序集引用)?」 – yondaimehokage

+0

@yondaimehokage:那麼,你會使用任何名稱*你的模型*實際上是。注意這個答案中的前幾個句子。如果您沒有課程,只需爲您的需求定義一個課程。 – David

+0

你能提供一個如何做到這一點的例子嗎?如果有數據庫,我知道該怎麼辦。 – yondaimehokage