如何在视图中以编程方式显示访问模型/viewmodel's字段.净MVC
本文关键字:viewmodel MVC 字段 模型 访问 视图 显示 方式 编程 | 更新日期: 2023-09-27 18:04:03
背景
我的ASP。NET MVC应用程序允许用户创建自定义报表,并选择要显示的字段、字段的顺序等。视图应该能够读取那些自定义的报告配置,并相应地显示模型字段。
假设我们有一个名为Person - Id, Name, Age, Address, Height的模型。
2)假设自定义报告配置位于一个名为CustomReportConfig的模型中——仅显示年龄、姓名和身高(按此顺序)。
现在,视图中应该发生的事情类似于(假设存在一个包含Person和CustomReportConfig的ViewModel)
foreach(string fieldName in @model.ViewModel.CustomReportConfig)
@model.ViewModel.Person.**fieldName**
正如您注意到的,上面代码中的fieldName部分是一个字符串变量,但在Views中,它应该是静态类型的。
是否可以在上述代码中为@model.Person.fieldName
中的 fieldName
部分使用变量?
注意:我知道这可以通过每个字段或反射的其他条件来完成,或者在ViewModel等中创建一个通用的数据表类型的对象,但我想知道是否有更好的方法来做到这一点,只需在@model.Person中创建fieldName。通过编程方式fieldName。
也许保留一个字段/属性名称列表,并使用反射来抓取属性?
可能更简洁的方法是保留一个对象列表,每个对象实现某个接口,然后在列表上循环。
foreach (IMyCustomInterface obj in @model.ViewModel.CollectionOfCustomReportConfigs)
@obj.ToRenderedString()