Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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 C#_C#_Asp.net_Asp.net Mvc_Entity Framework_Pagedlist - Fatal编程技术网

已排序和分页的ASP C#

已排序和分页的ASP C#,c#,asp.net,asp.net-mvc,entity-framework,pagedlist,C#,Asp.net,Asp.net Mvc,Entity Framework,Pagedlist,我正在尝试在ASP.NET MVC5应用程序中设置搜索、分页和排序。我一直收到以下错误…方法“Skip”仅支持LINQ to实体中的排序输入。方法“OrderBy”必须在方法“Skip”之前调用。我正在遵循Microsoft指南。。。() 我错过了什么?这似乎很直截了当 public class npsAAA_dataController : Controller { private npsAAAEntities db = new npsAAAEntities(); // GE

我正在尝试在ASP.NET MVC5应用程序中设置搜索、分页和排序。我一直收到以下错误…方法“Skip”仅支持LINQ to实体中的排序输入。方法“OrderBy”必须在方法“Skip”之前调用。我正在遵循Microsoft指南。。。()

我错过了什么?这似乎很直截了当

public class npsAAA_dataController : Controller
{
    private npsAAAEntities db = new npsAAAEntities();

    // GET: npsAAA_data
    public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
    {
        ViewBag.CurrentSort = sortOrder;
        ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
        ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

        if (searchString != null)
            page = 1;
        else
            searchString = currentFilter;

        ViewBag.CurrentFilter = searchString;
        var user = from s in db.accounting_data select s;

        if(!String.IsNullOrEmpty(searchString))
        {
            user = user.Where(s => s.User_Name.Contains(searchString));
        }
        switch(sortOrder)
        {
            case "name_desc":
                user = user.OrderByDescending(s => s.User_Name);
                break;
            case "Date":
                user = user.OrderBy(s => s.timestamp);
                break;
            case "date_desc":
                user = user.OrderByDescending(s => s.timestamp);
                break;
            default:
                user = user.OrderBy(s => s.User_Name);
                break;

        }
        int pageSize = 10;
        int pageNumber = (page ?? 1);
        return View(db.accounting_data.ToPagedList(pageNumber,pageSize));
    }

您没有在
返回视图()
行中返回已排序的数据。您当前的代码正在将排序后的数据分配给
用户
,但随后您将忽略它,而是再次调用数据库以返回未排序的数据。将您的代码改为:

return View(user.ToPagedList(pageNumber, pageSize));