我正在ASP.NET MVC中构建一个站点。我打算复制StackOverflow显示帖子的方式。这些人是否在ASP.NET MVC中使用转发器控件? 我确实希望完全控制渲染的标记,但我也想要分页。
在这种情况下,最好的方法是什么。
答案 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生成的。