将PaginatedList传递给ActionResult MVC C#

时间:2010-05-24 21:57:05

标签: c# asp.net-mvc pagination routes

我想为我的项目创建一个简单的分页搜索。我的“高级搜索”页面出现问题,我有几个文本框输入,用户可以使用适当的数据填充(基本上只有几个过滤器)。

我的视图是使用类似于NerdDinner教程的paginatedList类强类型的。

在我的控制器中,我想将PaginatedList作为参数传递,因为我的视图包含来自PaginatedList模型的几个信息。 PaginatedList为null(作为参数),然后我改变了添加路由;对象本身不再为null,但值为。

查看:

<%= Html.TextBox("Manufacturers", Model.Manufacturers) %>
<%= Html.TextBox("OtherFilters", Model.FilterX) %>
//...etc etc

控制器:

public ActionResult AdvancedSearchResults(PaginatedList<MyModel> paginatedList) {
//...
}

有什么想法吗?我是否正确地解决了这个问题?我应该创建一个ViewModel来封装paginatedList信息以及我需要的其他信息吗?

1 个答案:

答案 0 :(得分:0)

您可能希望创建包含用户过滤输入数据的SearchCriteria类。

控制器将具有以下操作:

public ActionResult AdvancedSearchResults(SearchCriteria criteria)
{
    PaginatedList<MyModel> result = SearchService.Search(criteria);
    return View(result);
}