0

表示します。しかし、このreturn文では、引数文句を言っている:私は他のモデルのためにこの方法を動作させるために管理している修正マイクロソフトドキュメントPaginatedList

enter image description here

public async Task<IActionResult> TripTable(int? page) 
{ 
    var trips = from t in _tripcontext.Tripmetadata select t; 

    page = 1; 

    int pageSize = 10; 

    return PartialView("PartialTripsView", await PaginatedList<Tripmetadata>.CreateAsync(trips.AsNoTracking(), page ?? 1, pageSize)); 
} 

ますが、何らかの理由でそれは私のTripmetadataと私のために動作しません。それがある理由がわからない...

Tripmetadata.csを

namespace MSPFrontend.Models 
{ 
    public partial class Tripmetadata 
    { 
     public Tripmetadata() 
     { 
      Tripgpsdata = new HashSet<Tripgpsdata>(); 
      Tripstate = new HashSet<Tripstate>(); 
     } 

     [Key] 
     public int Tripid { get; set; } 

     [Display(Name = "Start Timestamp")] 
     public long? Starttimestamp { get; set; } 

     [Display(Name = "End Timestamp")] 
     public long? Endtimestamp { get; set; } 

     public long? Duration { get; set; } 

     [Display(Name = "Average Speed")] 
     public decimal? AvgSpeed { get; set; } 

     public decimal? Distance { get; set; } 

     public virtual ICollection<Tripgpsdata> Tripgpsdata { get; set; } 
     public virtual ICollection<Tripstate> Tripstate { get; set; } 
    } 
} 

どのように私はそれが私のTripmetadataモデルのために働くことができますか?

UPDATE

私は成功せず、以下の(非非同期機能)を追加することによって、私のPaginatedListクラスを変更しようとしている:

public static Task<PaginatedList<T>> Create(List<T> source, int pageIndex, int pageSize) 
{ 
    var count = source.Count(); 
    var items = source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); 
    return new PaginatedList<T>(items, count, pageIndex, pageSize); 
} 

それは今それができないと文句を言いしかし:

Cannot implicitly convert type 'MSPFrontend.Data.PaginatedList<T>' to 'System.Threading.Tasks.Task<MSPFrontend.Data.PaginatedList<T>>' 
+0

である必要があります。Tripmetadataという名前の第2クラスはありますか?このエラーは、2つのリストが異なるタイプであることを示しています。 –

答えて

0

更新前にコードが表示されませんでしたが、非同期アクションと同期アクションが混在しているようです。 PaginatedListで次のコードを試して、残りのサンプルコードを同じにしておきます。

変更点:(1)すべてが非同期です。 (2)あなたの返品タイプはIQueryable<T>

public class PaginatedList<T> : List<T> 
{ 
    // ... cutting out irrelevant code 
    public static async Task<PaginatedList<T>> CreateAsync(IQueryable<T> source, int pageIndex, int pageSize) { 
     var count = await source.CountAsync(); 
     var items = await source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync(); 
     return new PaginatedList<T>(items, count, pageIndex, pageSize); 
    } 
} 
+0

お試しいただきありがとうございます。しかし、私はすでにこのコードをMicrosoft Docsのトップにあるリンクによって暗示しています。 – Zeliax