简体   繁体   English

实施pagedlist MVC后,没有数据返回到视图页面

[英]No data returning back to view page after implementing pagedlist MVC

I am working on displaying data based on the user logged in. In this application, I have added couple of contact information in database. 我正在根据登录的用户显示数据。在此应用程序中,我在数据库中添加了一些联系信息。 Before, I was able to display all data. 以前,我能够显示所有数据。 Now the thing is I have implemented PagedList in table and while returning data I am not able to return the data of the user who is logged in. All contacts have appeared. 现在,问题是我在表中实现了PagedList,并且在返回数据时,我无法返回已登录用户的数据。所有联系人均已出现。 Here is my code. 这是我的代码。

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);

    }

How can I achieve the data of user who logged in with PagedList? 如何获得使用PagedList登录的用户的数据? Help would be appreciated. 帮助将不胜感激。

In your code cnt is only ordered list but where clause is applied on contactData . 在您的代码中, cnt仅是有序列表,而where子句应用于contactData You should apply where on cnt and the return contactData . 您应该在cnt何处应用,并返回contactData Like as following 如下

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

This should solve your issue. 这应该可以解决您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM