2016-05-05 7 views
1

は、私は、タスクのすべてのプロパティを一覧表示するビューでテーブルを作成する必要があるプロパティループ

public class Task { 
    public string Key { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
    .... 
} 

の多いこのモデルを持っています。

同じ質問がすでに聞かれましたが、私はViewDataをを使用したくない:Looping through view Model properties in a View

任意のアイデア?

+0

アクションメソッドからタスクオブジェクトのリストを返して、ループして表示するだけです。あなたを止めているのは何ですか? – Shyju

+0

プロパティ、値、またはプロパティを一覧表示しますか? – Chakrava

+0

私はTaskのリストを返していますが、どのように各プロパティをループすることができますか? – Sergio

答えて

2

よう

何かがあなたのためにこの仕事をしていますか?

@foreach(var task in Model) { 
    <tr> 
    @foreach(var property in typeof(Task).GetProperties()) { 
     <th>@(property.GetValue(task, null))</th> 
    } 
    </tr> 
} 
+0

はい、これは機能します!ありがとう! – Sergio

0

他の特性のため、この

@foreach (var task in Model) 
{  
    <tr> 

     <td> 
      @task.Title 
     </td> 

    </tr> 
} 

などを使用してください。あなたのコントローラでは、あなたの仕事のリストを返します

`return View(your taskList);` 
+0

私はあなたのforループが1つ1つリストの代わりにプロパティを通過することができたらいいです – Sergio

1

おそらく、プロパティを取得するには、反射を使用する必要があります。この

@model List<Task> 
@if(Model.Any()) 
{ 
    var propArr = Model.Events[0].GetType().GetProperties(); 
    foreach (var ev in Model) 
    { 
     var p = ev.GetType().GetProperties(); 
     foreach (var propertyInfo in propArr) 
     { 
     <h4>@propertyInfo.Name</h4>  
     var val = propertyInfo.GetValue(ev, null); 
     if (val != null) 
     { 
      <p>@val</p> 
     } 
     }   
    } 
} 
+0

私は反射に精通していませんが、方法は私のために動作しません – Sergio

+0

どのような方法はあなたのために動作しません? – Shyju