实现pagedlist MVC后,没有数据返回到查看页面

时间:2017-03-19 19:02:13

标签: c# asp.net-mvc

我正在根据登录的用户显示数据。在这个应用程序中,我在数据库中添加了几个联系信息。之前,我能够显示所有数据。现在问题是我已经在表中实现了PagedList,并且在返回数据时我无法返回登录用户的数据。所有联系人都已出现。 这是我的代码。

public ActionResult Index(ContactModel contact, string sortOrder, string CurrentSort, int? page)
    {
        var currentUserId = User.Identity.GetUserId();
        contact.UserId = currentUserId;

        int pageSize = 5;
        int pageIndex = 1;
        pageIndex = page.HasValue ? Convert.ToInt32(page) : 1;

        ViewBag.CurrentSort = sortOrder;

        sortOrder = String.IsNullOrEmpty(sortOrder) ? "ContactID" : sortOrder;

        IPagedList<ContactModel> cnt = null;
        switch (sortOrder)
        {
            case "ContactID":
                if (sortOrder.Equals(CurrentSort))
                    cnt = db.Contact.OrderByDescending
                            (m => m.ContactID).ToPagedList(pageIndex, pageSize);
                else
                    cnt = db.Contact.OrderBy
                            (m => m.ContactID).ToPagedList(pageIndex, pageSize);
                break;

            case "Contact_Name":
                if (sortOrder.Equals(CurrentSort))
                    cnt = db.Contact.OrderByDescending
                            (m => m.Name).ToPagedList(pageIndex, pageSize);
                else
                    cnt = db.Contact.OrderBy
                            (m => m.Name).ToPagedList(pageIndex, pageSize);
                break;

            case "Email":
                if (sortOrder.Equals(CurrentSort))
                    cnt = db.Contact.OrderByDescending
                            (m => m.Email).ToPagedList(pageIndex, pageSize);
                else
                    cnt = db.Contact.OrderBy
                            (m => m.Email).ToPagedList(pageIndex, pageSize);
                break;

            case "Default":
                cnt = db.Contact.OrderBy
                        (m => m.ContactID).ToPagedList(pageIndex, pageSize);
                break;
        }
        var contactData = db.Contact.Where(x => x.UserId == currentUserId);
        return View(cnt);

    }

如何实现使用PagedList登录的用户数据?帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

在您的代码cnt中,只有有序列表,但where子句适用于contactData。您应该在cnt和返回contactData上申请。如下所示

var contactData = cnt.Where(x => x.UserId == currentUserId);
return View(contactData);

这可以解决您的问题。