我正在嘗試向 Index()/ 視圖添加分頁,此索引視圖使用自定義模型,這不是來自資料庫的表。我想看看我是否可以使用 PaginatedList.cs,因為我在同一個專案中的其他頁面使用 EF 并且分頁效果很好。
下面是我的索引()
public async Task<IActionResult> Index(string custEmail,int pageNumber = 1)
{
List<Order> oo = new List<Order>();
var timeUtc = DateTime.UtcNow;
var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var todayDt = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, easternZone);
var orderData = from mo in _context.MouseOrders
join io in _context.InventoryOrders on mo.MouseOrderId equals io.OrderId
join cus in _context.Customers on mo.CustomerId equals cus.CustomerId
join i in _context.Inventories on io.InventoryId equals i.InventoryId
where mo.SamaccountEmail == custEmail
&& mo.OrderDate.Date == todayDt.Date
select new
{
CustomerNumber= cus.CustomerNumber,
OrderID = mo.MouseOrderId,
Genotype = i.Genotype,
RoomNumber = i.RoomNumber,
QuantityAvailable = i.QuantityAvailable,
OrderQuantity = io.OrderQuantity
};
foreach (var item in orderData)
{
Order o = new Order();
o.CustomerNumber = item.CustomerNumber;
o.OrderId = item.OrderID;
o.Genotype = item.Genotype;
o.RoomNumber = item.RoomNumber;
o.QuantityAvailable = item.QuantityAvailable;
o.OrderQuantity = item.OrderQuantity;
oo.Add(o);
}
return View(await PaginatedList<Order>.CreateAsync(oo,pageNumber,5));
}
但我得到了這樣的錯誤
Cannot convert from 'System.Collections.Generic.List<JSMApp.Models.Order>' to 'System.Linq.IQueryable<JSMApp.Models.Order>'
我嘗試將 List 更改List<Order>為 IQueryable 但即使這樣也會引發錯誤。
我試圖對使用 EF 和 PaginatedList 的其他頁面具有相同的分頁行為/外觀和感覺,但不確定如何處理自定義而不是來自 DB 的模型
編輯* 當我嘗試訪問 Index() 頁面時,出現以下錯誤
An unhandled exception occurred while processing the request. NotImplementedException: The method or operation is not implemented. JSMApp.PaginatedList<T>.CreateAsync<TEntity>(IQueryable<TEntity> entities, int v, int pageSize) in PaginatedList.cs, line 53
下面是它在 PaginatedList 中拋出錯誤的行
internal static Task<string> CreateAsync<TEntity>(IQueryable<TEntity> entities, int v, int pageSize) where TEntity : class
{
throw new NotImplementedException();
}
uj5u.com熱心網友回復:
您快到了。只是改變;
select new
{
CustomerNumber= cus.CustomerNumber,
OrderID = mo.MouseOrderId,
// etc
}
到
select new Order
{
CustomerNumber= cus.CustomerNumber,
OrderID = mo.MouseOrderId,
// etc
}
現在你的orderData意志是IQueryable<Order>可以通過的;
PaginatedList<Order>.CreateAsync(orderData,pageNumber,5))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/345131.html
標籤:C# asp.net-mvc asp.net核心 实体框架核心
上一篇:如何在單列c#中連接多個物件串列
