我有一个表,其列名类似于“ADDRESS”、“OLD_ADDRESS”、“CITY”、“OLD_CITY”、“STATE”、“OLD_STATE”......等等。我正在使用实体框架查询提取此信息并将模型传递到 ASP.NET MVC 视图中。
我需要以表格格式显示此信息,如下所示
我需要比较旧字段和新字段,如果值存在差异,请显示它。做这样的事情的最好方法是什么?我可以通过循环遍历模型并比较 if (item.ADDRESS == item.OLD_ADDRESS) { .... } 以正常方式构建它,但是这个特定的表有大约 100 列,我基本上会写 50 个“if”条件。假设 linq 查询只返回一行。
我正在从旧数据库中读取此信息,无法重新设计它。在此先感谢您的任何建议。
----------------------------- 编辑 1-------------------- ---------这是我迄今为止尝试过的 -
@foreach (var BusRels in Model)
{
foreach (var busrel in BusRels.GetType().GetProperties())
{
if (busrel.Name.IndexOf("OLD") > -1) {
{
var fieldVal = busrel.GetValue(BusRels, null);
if ( fieldVal != null)
{
if (!fieldVal.ToString().Trim().IsEmpty())
{
<tr>
@{
//BusRels.GetType().GetProperties().Where(p => p.Name == fieldVal.
var displayName = busrel.GetCustomAttributes(typeof(System.ComponentModel.DisplayNameAttribute), false)
.Cast<System.ComponentModel.DisplayNameAttribute>()
.FirstOrDefault().DisplayName;
}
<td>@displayName</td>
<td>@busrel.GetValue(BusRels, null)</td>
<td>???????</td>
</tr>
}
}
}
}
}
我想这里的问题是我似乎无法让“新”值显示在旧值旁边。