2017-03-19 8 views
0

ログインしているユーザーに基づいてデータを表示するように取り組んでいます。このアプリケーションでは、データベースにいくつかの連絡先情報を追加しました。以前は、すべてのデータを表示できました。今は、テーブルにPagedListを実装し、データを返しているうちに、ログインしているユーザーのデータを返すことができません。すべての連絡先が表示されています。 ここに私のコードです。pagedlistを実装した後にビューページに戻るデータがありませんMVC

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でログインしたユーザーのデータを取得するにはどうすればよいですか?ヘルプをいただければ幸いです。

答えて

2

cntは、オーダーされたリストだけですが、where句はcontactDataに適用されます。 cntと返品contactDataのどこに申請してください。以下のようになります

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

これは問題を解決するはずです。

+0

その作業..ありがとうございます。私の時間を節約しました。 – user7090664

関連する問題