You just need one ObjectList
action like below:
public IActionResult ObjectList(string sortOrder)
{
ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
var objects = from s in _objectRepository.GetAllObjects()
select s;
switch (sortOrder)
{
case "name_desc":
objects = objects.OrderByDescending(s => s.Name);
break;
default:
objects = objects.OrderBy(s => s.Name);
break;
}
return View(objects);
}
View:
@model IEnumerable<MyObject>
@{
ViewData["Title"] = "ObjectList";
}
<h1>ObjectList</h1>
<table>
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.ObjectId)
</th>
<th>
<a asp-action="ObjectList" asp-route-sortOrder="@ViewData["NameSortParm"]">@Html.DisplayNameFor(model => model.Name)</a>
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(m => item.ObjectId)
</td>
<td>
@Html.DisplayFor(m => item.Name)
</td>
</tr>
}
</tbody>
</table>
Result:
CLICK HERE to find out more related problems solutions.