В MVC я бы предложил использовать комбинацию запроса LINQ в вашем контроллере (или в репозитории, внутри функции, вызываемой из контроллера), цикл for в вашем представлении и в зависимости от того, насколько сложными элементы вы хочу отобразить, частичный вид внутри цикла.
Для разбивки на страницы вы можете передать параметры start и count функции, чтобы получить раздел списка объектов через LINQ. Например:
Function sliceList(ByVal startIndex As Integer, ByVal count As Integer) As Generic.List(Of myObject)
Dim FullObjectList As Generic.List(Of myObject) = GetObjectsFromSomewhere()
Dim returnList As New Generic.List(Of myObject)
returnList = From o In FullObjectList Skip startIndex Take count
Return returnList
End Function
Затем ваш контроллер передает возвращенный список в представление для отображения, и вы перебираете его, отображая элементы так, как вам нравится.
Надеюсь, это поможет.