【发布时间】:2019-11-30 02:24:27
【问题描述】:
我有一类人和爱好
public class PersonViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public List<Hobby> Hobbies { get; set; }
}
public class Hobby
{
public string Name { get; set; }
public string Type { get; set; }
public string Frequency { get; set; }
public string SomethingElse { get; set; }
}
在我的网页上,我想循环访问 Hobby 中的属性以生成表格。 这个想法是,如果我更改类,显示/请求的数据将自动更改。
目前在我的网页上
@if (Model.Hobbies.Count>0)
{
<table>
<thead>
<tr>
<td> </td><td>Hobby 01</td><td>Hobby 02</td><td>Hobby 03</td><td>Hobby 04</td>
</tr>
</thead>
<tbody>
<tr>
<td>Frequency</td>
@for (int i =0; i < Model.Hobbies.Count; i++)
{
<td><input type="text" class="form-control" id="Hobbies[i].Frequency" asp-for="Hobbies[i].Frequency" value=""> </td>
}
</tr>
@foreach(var property in Model.Hobbies[0].GetType().GetProperties())
{
<tr>
<td><label>@property.Name</label></td>
@for (int i =0; i < Model.Hobbies.Count; i++)
{
<td>sds <input type="text" class="form-control" id="Hobbies[i].@property.Name" asp-for="Hobbies[i].GetProperty(property.Name)" value=""> </td>
}
</tr>
}
</tbody>
</table>
}
第一个 asp-for,我使用的名称工作正常
asp-for="Hobbies[i].Frequency"
但是我不能让第二个使用变量来工作:
asp-for="Hobbies[i].property.Name"
- 我尝试了很多方法,我确信有一种方法我可以使用我只是不知道它是什么。
任何帮助都会很棒。
【问题讨论】:
-
这个link解决了你的问题的一个例子
-
asp-for需要一个模型 表达式,因此您不能传递需要执行的东西(尤其是通过反射)。
标签: c# asp.net-core razor asp.net-core-mvc