我將串列資料拉入網格,并在“詳細視圖”中逐一查看它們。我正在嘗試添加一個“下一個/上一個”按鈕,這將使我能夠輕松地在串列中每個專案的詳細資訊之間導航。
這是我在控制器中使用的代碼
var nextID = _movieRepository.GetAll()
.OrderBy(i => i.movie_id)
.SkipWhile(i => i.movie_id != i.movie_id)
.Skip(1)
.Select(i => i.movie_id);
ViewBag.NextID = nextID;
在我的斷點內,它只回傳“nextID = NULL”,這意味著它不會在我的 URL 末尾生成適當的下一個記錄 ID。注意:我在我的控制器中使用 Linq 命名空間,但我沒有使用 EF。這是我認為的簡單代碼。
<a href="/@ViewData["Controller"]/@ViewData["Action"]/@ViewBag.nextID"> Next Movie </a>
我一直在谷歌搜索,嘗試不同的方法,Skip/SkipWhile/Select/FirstOrDefault 的不同組合,但沒有任何效果。非常感謝您對此的任何幫助或見解。
uj5u.com熱心網友回復:
您的代碼中有錯誤
.SkipWhile(i => i.movie_id != i.movie_id)
始終為假,因此您將始終將所有記錄減一,而不是一條記錄。
我假設你有 movie_id 并且在此之后你需要下一個更大的 id ,所以試試這個代碼
var nextID = _movieRepository.GetAll()
.OrderBy(i => i.movie_id)
.Where(i => i.movie_id > movie_Id )
.Select(i => i.movie_id)
.FirstOrDefault();
此查詢將在當前movie_id 之后回傳下一個movie_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/408623.html
標籤:
