Nicht einmal sicher, ob ich die Frage richtig gestellt habe. Ich habe es etwa eine Stunde lang angeschaut und es ist zu einfach, es zu lange zu nehmen. Problem ist, dass ich zu einfach bin, um die Antwort zu wissen, oder sogar, wie man eine Suche richtig formuliert, um die Antwort zu finden.Dynamisch festlegen Titel anzeigen
Ich habe eine Geschichte von Jobs abgeschlossen für eine Website eingerichtet.
Controller:
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));
}
Dies wird die korrekten Datensätze alle gut zurück.
Ich habe dann eine Ansicht ein:
<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>
Dies ist bisher arbeiten wellish.
Alles, was ich tun möchte, ist wie etwas hinzufügen:
@Html.DisplayFor(ModelItem=>item.Site.SiteName)
Zum <h2>
Element. Ich weiß, dass das nicht wie eingegeben funktionieren wird, danke für das Denken.
Ich kann nur einen Weg sehen, es hinzuzufügen. Ich dachte ViewData
, aber kann es falsch verwenden, wie ich es nicht mit SiteName
bevölkern kann.
Gibt es eine Möglichkeit, dies zu tun, oder denke ich über alles wie gewohnt?
<h2>@Html.DisplayFor(m => m[0].Site.SiteName);</h2>
Weitere Optionen::
Gibt es einen Grund, warum Sie nicht die ViewBag können
Ihr Modell ist eine Sammlung, kein einzelnes Objekt, und eine Sammlung hat keine Eigenschaft namens "Site".Es ist nicht klar, was Sie anzeigen möchten. Enthält Ihre Sammlung Objekte, deren "Site" (und ihr 'SiteName') alle gleich sind? –