2013-03-20 52 views
1

我有一個ViewModel,它具有我需要在控制器中迭代的許多不同屬性(即string,int等)。做這個的最好方式是什麼?這裏是ViewModel的定義:如何在控制器中遍歷ViewModel的屬性

public class BankListViewModel 
{ 
    public int ID { get; set; } 
    public string BankName { get; set; } 
    public string EPURL { get; set; } 
    public string AssociatedTPMBD { get; set; } 
    public string Tier { get; set; } 
    public List<BankListAgentId> BankListAgentId { get; set; } 
    public List<BankListStateCode> BankListStateCode { get; set; } 
} 

但是我需要省略兩個列表。有任何想法嗎?

EDIT

這個過程的目的是將視圖模型的特定項目進入三個獨立對象。視圖模型是爲了組合三個獨立的SQL表/模型的屬性而創建的。我現在試圖將它們適當地分開並將信息添加到相關表格中。現在我只是要一個個像這樣:

 BankListMaster banklistmaster = new BankListMaster(); 
     banklistmaster.AssociatedTPMBD = viewmodel.AssociatedTPMBD; 
     banklistmaster.BankName = viewmodel.BankName; 
+0

反射? http://stackoverflow.com/questions/531384/how-to-loop-through-all-the-properties-of-a-class – 2013-03-20 16:22:29

+0

你想用你迭代的屬性做什麼?讀取值?讀他們的名字? – 2013-03-20 16:22:58

+1

意圖不是很清楚。 '迭代'是什麼意思?爲什麼這是必要的?爲什麼不只是閱讀屬性? – HitLikeAHammer 2013-03-20 16:24:11

回答

4

雖然目前還不清楚爲什麼你會需要遍歷的屬性,而不是僅僅閱讀他們的vaules,你可以做到這一點使用反射

var model = new BankListViewModel(); 
PropertyInfo[] properties = model.GetType().GetProperties(); 
foreach (var property in properties) 
{ 
    if (property.GetType() != typeof(List<BankListAgentId>)) 
      { 
       //do your thing here 
      } 

}