StackOverflow使用什么控件来显示帖子?

时间:2009-05-27 18:47:42

标签: asp.net-mvc pagination repeater

我正在ASP.NET MVC中构建一个站点。我打算复制StackOverflow显示帖子的方式。这些人是否在ASP.NET MVC中使用转发器控件? 我确实希望完全控制渲染的标记,但我也想要分页。

在这种情况下,最好的方法是什么。

2 个答案:

答案 0 :(得分:1)

在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

然后你的控制器将返回的列表传递给视图进行显示,然后循环显示它,然后显示你喜欢的项目。

希望这有帮助。

答案 1 :(得分:1)

我不知道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生成的。