Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 我想向索引页添加列排序链接_Asp.net Mvc_Sorting - Fatal编程技术网

Asp.net mvc 我想向索引页添加列排序链接

Asp.net mvc 我想向索引页添加列排序链接,asp.net-mvc,sorting,Asp.net Mvc,Sorting,我试图在我的web应用程序中向“到期日”列添加一个列排序链接,但在使其正常工作时遇到了问题。目前,这是我在控制器中的代码,我在其中定义了switch语句,以确定用户希望如何排序: var items = from s in db.Items select s; ViewBag.DateSortParm = sortOrder == "DueDate" ? "duedate_desc" : "DueDate"; swit

我试图在我的web应用程序中向“到期日”列添加一个列排序链接,但在使其正常工作时遇到了问题。目前,这是我在控制器中的代码,我在其中定义了switch语句,以确定用户希望如何排序:

 var items = from s in db.Items
                    select s;

        ViewBag.DateSortParm = sortOrder == "DueDate" ? "duedate_desc" : "DueDate";

        switch (sortOrder)
        {
            case "duedate_desc":
                items = items.OrderByDescending(s => s.DueDate);
                break;
            case "DueDate":
                items = items.OrderBy(s => s.DueDate);
                break;
            default:
                items = items.OrderByDescending(s => s.DueDate);
                break;
在索引视图中,以下是我的代码:

<tr>
    <th>
        @Html.DisplayNameFor(model => model.First().ItemDescription)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.First().Quantity)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.First().Price)
    </th>
    <th>
        @Html.ActionLink("Due Date", "Index", new 
        {
            sortOrder=ViewBag.DateSortParm,

        })
我必须使用.OrderBy来获取要渲染的视图,否则会出现“skip”方法错误。这是否导致列排序链接无法正常工作的问题?有什么可能的解决办法吗


-谢谢

我找到了问题的答案。我必须删除.OrderBy子句

int pageSize = 15;
        int pageNumber = (page ?? 1);
        pageNumber = page == null ? (ViewBag.pageData == null ? 1 : (int)ViewBag.pageData) : page.Value;
        ViewBag.pageData = page;
        ViewBag.searchBy = searchBy;
        ViewBag.search = search;
        return View(items.OrderBy(i => i.ItemId).ToPagedList(pageNumber,pageSize));