[英]No data returning back to view page after implementing pagedlist 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登录的用户的数据? 帮助将不胜感激。
在您的代码中, cnt
仅是有序列表,而where子句应用于contactData
。 您应该在cnt
何处应用,并返回contactData
。 如下
var contactData = cnt.Where(x => x.UserId == currentUserId);
return View(contactData);
这应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.