如何在控制器中迭代ViewModel的属性

时间:2013-03-20 16:20:19

标签: asp.net-mvc asp.net-mvc-3 viewmodel

我有一个ViewModel,它有许多不同的属性(即string,int等),我需要在控制器中迭代。做这个的最好方式是什么?这是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; }
}

但是,我需要省略这两个列表。有什么想法吗?

编辑

此过程的目的是将视图模型的特定项目传递到三个单独的对象中。创建视图模型以组合三个单独的SQL表/模型的属性。我现在正在尝试将它们分开,并将信息添加到相关表格中。现在,我只是一个接一个地去:

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

1 个答案:

答案 0 :(得分: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
            }

}