我有这个模型,它有很多属性
public class Task {
public string Key { get; set; }
public string Title { get; set; }
public string Description { get; set; }
....
}
我需要在视图中创建一个表来列出任务的所有属性。
同样的问题已经被问到了,但我不想使用ViewData:在视图中循环浏览视图模型属性
知道吗?
这对你有用吗?
@foreach(var task in Model) {
<tr>
@foreach(var property in typeof(Task).GetProperties()) {
<th>@(property.GetValue(task, null))</th>
}
</tr>
}
您可能需要使用反射来获取属性。
像这样的
@model List<Task>
@if(Model.Any())
{
var propArr = Model.Events[0].GetType().GetProperties();
foreach (var ev in Model)
{
var p = ev.GetType().GetProperties();
foreach (var propertyInfo in propArr)
{
<h4>@propertyInfo.Name</h4>
var val = propertyInfo.GetValue(ev, null);
if (val != null)
{
<p>@val</p>
}
}
}
}
扩展到Steve Coopers示例:
<table class="table table-bordered table-responsive table-hover">
@foreach (var item in Model.a)
{
<tr>
@foreach (var prop in typeof(a).GetProperties())
{
<th>@(prop.Name)</th>
}
</tr>
<tr>
@foreach (var prop in typeof(a).GetProperties())
{
<td>@(prop.GetValue(item, null))</td>
}
</tr>
}
</table>
请使用此
@foreach (var task in Model)
{
<tr>
<td>
@task.Title
</td>
</tr>
}
等等用于其他属性。然后在你的控制器中,你返回一个任务列表,比如
`return View(your taskList);`