我想知道是否有任何方法可以通过我在下面打印的foreach中声明的另一个变量来调用ViewModel中的变量。
这是用c#(Razor文件)编写的。
工作示例,但仅查看“用户”表和“密码”字段:
@foreach (var item in Model.Tables.OrderByDescending(r => r.Date))
{
@Model.Users.Where(r=>r.ID == item.TableRow_ID).FirstOrDefault().Password
}
我想要的是什么:
@foreach (var item in Model.Tables.OrderByDescending(r => r.Date))
{
@Model.**item.TableName**.Where(r=>r.ID ==
(item.TableRow_ID)).FirstOrDefault().**item.Field**
}
这有可能吗?或者我应该寻找另一个解决我的问题的方法吗?
更新:避免XY问题
我有一个审计跟踪,用于存储编辑的旧值。我也希望显示“新值”,但将其存储在路径中将是多余的,因为它被存储为已编辑的字段的新值。 所以我想使用我在Audit过程中得到的值,它存储在item(表名,行id和字段名)中,直接从包含“new value”的表中获取“new value”。 / p>
所以在我发布的代码中,工作示例是如何通过输入表和字段的名称(用户和密码)来获取“新值”。但如果我想要“用户名”字段,这将无效。 因为我有太多的表名和字段来制作if / switch,我想知道如何通过表名,行id和字段名来获得“新值”的解决方案。