2017-04-21 8 views
0

私はそれを検索しようとしましたが、正しい検索条件を使用していない可能性があります。閲覧リストを送信して反復する

Item 1: name = 'cat', category = 'animal' 
Item 2: name = 'dog', category = 'animal' 
Item 3: name = 'tulip', category = 'plant' 

などなど:

は基本的に、私が最初にこのようなものを含んでいるでしょう、私のコントローラ内のリストを生成する必要があります。だから私が私の見解に着くと、私は何かできる:

コントローラでリストを作成するにはどうすればよいですか?

答えて

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:あなたのモデル*が実際にはどんな名前でも使用できます。この答えの最初の2つの文に注意してください。クラスがない場合は、必要なものだけを定義してください。 – David

+0

これを行う方法の例を教えてもらえますか?私はデータベースがある場合はどうすればよいか知っています。 – yondaimehokage