0
甚至不知道我是否以正确的方式提出问题。一直在看这个约一个小时,它太简单,需要很长时间。麻烦的是我太简单,无法知道答案,甚至不知道如何正确地使用搜索来找到答案。动态设置查看标题
我有一个网站建立完成的工作的历史。
控制器:
public async Task<IActionResult> JobSiteHistory(int id, int? page)
{
var jobs = from j in _context.Job
.Include(j => j.Site)
.Include(j=>j.WaterBody)
.Where(j=>j.Site.SiteID==id)
.OrderByDescending(j=>j.BookingDate)
select j;
int pageSize = 9;
return View(await PaginatedList<Job>.CreateAsync(jobs.AsNoTracking(), page ?? 1, pageSize));
}
这是返回正确的记录都好。
然后我有一个观点成立:
<h2> Site Jobs History</h2>
<p>
<a asp-action="Create">Add New Job</a>
</p>
<table class="table">
<thead>
<tr>
<th>Booking Date</th>
<th>Job Number</th>
<th>Waterbody</th>
<th>Job Description</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td>@Html.DisplayFor(modelItem => item.BookingDate)</td>
<td>@Html.DisplayFor(modelItem => item.JobNumber)</td>
<td>@Html.DisplayFor(modelItem => item.WaterBody.WBName)</td>
<td>@item.JobDescription.Substring(0, Math.Min(item.JobDescription.Length, 30))</td>
<td>
<a asp-action="Edit" asp-route-id="@item.JobID">Edit</a> |
<a asp-action="Details" asp-route-id="@item.JobID">Details</a> |
<a asp-action="Delete" asp-route-id="@item.JobID">Delete</a> |
</td>
</tr>
}
</tbody>
</table>
这是工作wellish至今。
所有我想要做的就是添加类似:
@Html.DisplayFor(ModelItem=>item.Site.SiteName)
到<h2>
元素。我知道这不会像打字一样工作,谢谢你的想法。
我只是不能看到一种方式来添加它。我认为ViewData
,但可能会使用它错误,因为我不能让它填充SiteName
。
有没有办法做到这一点,还是我像往常一样思考所有的屁股?
你的模型是一个集合,而不是一个单一的对象,并收集没有一个名为'Site'财产。它不清楚你想要展示什么。您的集合中是否包含每个“Site”(及其“SiteName”)都相同的对象? –