如何使用字符串值中的名称获取ViewModel实体?

时间:2013-05-15 11:29:48

标签: c# class entity action viewmodel

所以说我有一个名为

的ViewModel
  

SampleViewModel

其中包含3个名为

的实体
  

entityOne

     

entityTwo

     

entityThree

现在我在控制器动作中有一个动作,看起来有点像这个

public ActionResult TestAction(string Destination)
{
     SampleViewModel sampleViewModel = new SampleViewModel();
}

现在我希望能够根据字符串“Destination”的设置选择特定实体。目标将始终设置为“entityOne”,“entityTwo”或“entityThree”。所以基本上我想打电话

sampleViewModel.entityOne

如果字符串包含“entityOne”。

所以影响我说

sampleViewModel.Destination //Where destination is equal to the one entity in the ViewModel

我该怎么做?

由于

2 个答案:

答案 0 :(得分:2)

您可以使用Reflection获取,假设您在此处有Entity课程:

var entity = (Entity) typeof (SampleViewModel)
                             .GetProperty(Destination)
                             .GetValue(sampleViewModel);

答案 1 :(得分:0)

您可以使用反射。例如,如果entity是某个属性,则可以执行以下操作以获取其值:

public ActionResult TestAction(string Destination)
{
     SampleViewModel sampleViewModel = new SampleViewModel();
     var value = typeof(SampleViewModel).GetProperty(Destination).GetValue(sampleViewModel);
}

确保正确处理异常。