选择列表/下拉列表中的表类别列表

时间:2019-11-25 00:05:33

标签: c# .net-core asp.net-core-mvc

我正在研究一个新项目,并决定使用.net core 3.0。我对这个框架是完全陌生的,我被困在任务上,我想通过添加选择列表来更改模板,该选择列表将包含按类别分组的模型数据。

目前,我已经完成了可以通过使用表中的sortOrder参数对每个类别进行排序的教程-来自https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/sort-filter-page?view=aspnetcore-3.0的教程。我想做的是根据表格标题添加单独的下拉列表广告排序记录。 enter image description here

此刻我的观点看起来像

    <thead>
    <tr>
        <th>
            <a asp-action="Index" asp-route-sortOrder="@ViewData["NameSortParm"]">@Html.DisplayNameFor(model => model.LastName)</a>
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FirstMidName)
        </th>
        <th>
            <a asp-action="Index" asp-route-sortOrder="@ViewData["DateSortParm"]">@Html.DisplayNameFor(model => model.EnrollmentDate)</a>
        </th>
        <th></th>
    </tr>
</thead>

我的控制器具有以下操作方法...

public async Task<IActionResult> Index(string sortOrder)
    {
        ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
        ViewData["DateSortParm"] = sortOrder == "Date" ? "date_desc" : "Date";
        var students = from s in _context.StudentsModel
                       select s;


        switch (sortOrder)
        {
            case "name_desc":
                students = students.OrderByDescending(s => s.LastName);
                break;
            case "Date":
                students = students.OrderBy(s => s.EnrollmentDate);
                break;
            case "date_desc":
                students = students.OrderByDescending(s => s.EnrollmentDate);
                break;
            default:
                students = students.OrderBy(s => s.LastName);
                break;
        }
        return View(await students.AsNoTracking().ToListAsync());

        //return View(await _context.Students.ToListAsync());
    }

我浏览了许多网站,但未找到解决方案,因此,如果有人可以帮助我取得理想的结果,我将不胜感激。

0 个答案:

没有答案