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」)都相同的對象? –