我正在根据登录的用户显示数据。在这个应用程序中,我在数据库中添加了几个联系信息。之前,我能够显示所有数据。现在问题是我已经在表中实现了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登录的用户数据?帮助将不胜感激。
答案 0 :(得分:2)
在您的代码cnt
中,只有有序列表,但where子句适用于contactData
。您应该在cnt
和返回contactData
上申请。如下所示
var contactData = cnt.Where(x => x.UserId == currentUserId);
return View(contactData);
这可以解决您的问题。