显示dto-list的所有字段,c#
Display all fields of dto-list, c#
我需要在 razorpage.I 中显示 dto-list 的所有字段,每个 dto 对象大约有 70 个字段。
现在我有这样的代码:
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
<td>@ft.Name</td>
<td>@ft.Head</td>
<td>@ft.Customer</td>
<td>@ft.Item</td>
//~66 another fields
</tr>
它有效,但我正在寻找改进我的代码的方法。我想做点什么:
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
@for (int i = 0; i<ft.CountOfFields;i++)
<td>@ft[i]</td>
</tr>
因为我不想重复大约 70 次。
我该怎么做?我应该为我的 DTO 研究 IEnumerable 实现吗?或者任何其他想法,谢谢
在您的视图中使用反射来获取对象的 FieldInfo[]。将 DtoForeignClient
替换为您的真实类型 ft
.
@using System.Reflection;
@{
var fields = typeof(DtoForeignClient).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
}
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
@foreach(FieldInfo f in fields)
{
<td>@f.GetValue(ft)</td>
}
<tr>
}
我需要在 razorpage.I 中显示 dto-list 的所有字段,每个 dto 对象大约有 70 个字段。
现在我有这样的代码:
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
<td>@ft.Name</td>
<td>@ft.Head</td>
<td>@ft.Customer</td>
<td>@ft.Item</td>
//~66 another fields
</tr>
它有效,但我正在寻找改进我的代码的方法。我想做点什么:
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
@for (int i = 0; i<ft.CountOfFields;i++)
<td>@ft[i]</td>
</tr>
因为我不想重复大约 70 次。
我该怎么做?我应该为我的 DTO 研究 IEnumerable 实现吗?或者任何其他想法,谢谢
在您的视图中使用反射来获取对象的 FieldInfo[]。将 DtoForeignClient
替换为您的真实类型 ft
.
@using System.Reflection;
@{
var fields = typeof(DtoForeignClient).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
}
@foreach (var ft in Model.DtoForeignClients)
{
<tr>
@foreach(FieldInfo f in fields)
{
<td>@f.GetValue(ft)</td>
}
<tr>
}