我正在用 ASP.NET MVC 构建一个站点。我打算复制 StackOverflow 显示其帖子的方式。这些人在 ASP.NET MVC 中使用中继器控件吗?我确实想要完全控制呈现的标记,但我也想要分页。
在这种情况下,最好的方法是什么。
我正在用 ASP.NET MVC 构建一个站点。我打算复制 StackOverflow 显示其帖子的方式。这些人在 ASP.NET MVC 中使用中继器控件吗?我确实想要完全控制呈现的标记,但我也想要分页。
在这种情况下,最好的方法是什么。
在 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
然后,您的控制器将返回的列表传递给视图进行显示,然后您循环遍历它,随意显示项目。
希望这可以帮助。
我不知道 StackOverflow 是如何实现的,但你不需要使用任何 asp.net 控件。
当然,您需要构建自己的寻呼机。
看看 NerdDinner 教程,它有一个部分展示了如何创建分页列表。 http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx
这非常简单,您可以完全控制所有标记。事实上,您几乎必须提供所有标记,几乎没有一个标记是由 asp.net 生成的。