我需要在表单上显示一长串复选框。我从数据库中的表中获取复选框列表并在页面上呈现它们。保存页面时,我将保存每个所选项目的字段名称和值(因为它们存储在数据库中)。
我还有一个模型类,所有这些复选框字段都映射到,但我在想,因为我有字段名称和值,我将只能设置我有字段/值的属性
我以为我可以做这样的事情,但我知道语法不正确:
private void CreatePPAIndication(ReferralFormViewModel viewModel, Guid personId, Guid encId)
{
var ppaIndication = new PPAIndication();
ppaIndication.enterprise_id = "00001";
ppaIndication.practice_id = "0001";
ppaIndication.person_id = personId;
ppaIndication.enc_id = encId;
// set more properties...
// Here is where I would set a property for each selected check box.
foreach (var indication in viewModel.Indications.Where(o => o.IsSelected))
{
var result = "ppaIndication." + indication.FieldName + "(" + indication.FieldValue + ")";
}
// How can I essentially "execute" the string in the line above?
_context.PPAIndications.Add(ppaIndication);
}
所以,基本上,我想知道我如何能够“执行”“结果”字符串作为真实代码。提前感谢您的任何建议!
答案 0 :(得分:2)
你可以使用反射
类似
GetType().GetProperty(o.FieldName).GetValue(indication, null);
获取值
或
GetType().GetProperty(o.FieldName).SetValue(indication, o.Value);
设置值