MVC viewModel 和分页结果
MVC viewModel and paged results
我需要按照以下方式将视图模型传递给控制器。
[HttpPost]
public JsonResult GetSearchResultsJson(SearchCriteria searchCriteria)
{
}
SearchCriteria 定义为:
public class SearchCriteria
{
public SearchData searchData { get; set; }
public SearchMode searchMode { get; set; }
}
搜索模式为:
public class Searchmode
{
public int? mode { get; set; }
public int? pageNumber { get; set; }
public int? pageSize { get; set; }
}
SearchData 有 61 个属性,用于定义要搜索的项目。
public class SearchData
{
public string name {get;set;}
....
public int age {get;set;}
}
我使用 jQuery 填充对象并将其传递给控制器。 .Net 将此对象转换为 SearchCriteria 类型的对象。一切正常,但是当呈现 PagedListPager 控件时,我如何模拟用于创建对象的 jQuery?
目前我有以下代码:
@Html.PagedListPager(Model.DocumentsPaged, pageNumber => Url.Action("GetSearchResultsJson", XXXXXXXXXXXXXXXXXXXXXXX),pLRO)
并且不知道在标记为 XXXXXXXXXXXXXXXXXXXXXXX 的位中放入什么。
在 jQuery 内,我可以修改 SerachMode 对象的 pageNumber 属性,这确实为我提供了正确的页面,但我需要的正是这个 属性在 Html.PagedListPager 助手中更新。
如示例中所述here您可以通过该页面。
我强烈建议您克隆示例代码并试用一下。
可能您还必须添加搜索参数,以防在服务器端丢失它们。
您的方法 GetSearchResultsJson(SearchCriteria searchCriteria)
被标记为 [HttpPost]
,因此您可以将 URL 参数留空而只使用 Url.Action("GetSearchResultsJson")
。 POST 的搜索参数位于请求正文中,而不是 URL。
因为 Html.PagedListPager
方法需要一个 'page' 参数(假设您使用的是 PagedList.Mvc
NuGet 包中的方法),您可能希望这样编写搜索函数:
GetSearchResultsJson(int page, int SearchCriteria searchCriteria)
我需要按照以下方式将视图模型传递给控制器。
[HttpPost]
public JsonResult GetSearchResultsJson(SearchCriteria searchCriteria)
{
}
SearchCriteria 定义为:
public class SearchCriteria
{
public SearchData searchData { get; set; }
public SearchMode searchMode { get; set; }
}
搜索模式为:
public class Searchmode
{
public int? mode { get; set; }
public int? pageNumber { get; set; }
public int? pageSize { get; set; }
}
SearchData 有 61 个属性,用于定义要搜索的项目。
public class SearchData
{
public string name {get;set;}
....
public int age {get;set;}
}
我使用 jQuery 填充对象并将其传递给控制器。 .Net 将此对象转换为 SearchCriteria 类型的对象。一切正常,但是当呈现 PagedListPager 控件时,我如何模拟用于创建对象的 jQuery?
目前我有以下代码:
@Html.PagedListPager(Model.DocumentsPaged, pageNumber => Url.Action("GetSearchResultsJson", XXXXXXXXXXXXXXXXXXXXXXX),pLRO)
并且不知道在标记为 XXXXXXXXXXXXXXXXXXXXXXX 的位中放入什么。
在 jQuery 内,我可以修改 SerachMode 对象的 pageNumber 属性,这确实为我提供了正确的页面,但我需要的正是这个 属性在 Html.PagedListPager 助手中更新。
如示例中所述here您可以通过该页面。
我强烈建议您克隆示例代码并试用一下。 可能您还必须添加搜索参数,以防在服务器端丢失它们。
您的方法 GetSearchResultsJson(SearchCriteria searchCriteria)
被标记为 [HttpPost]
,因此您可以将 URL 参数留空而只使用 Url.Action("GetSearchResultsJson")
。 POST 的搜索参数位于请求正文中,而不是 URL。
因为 Html.PagedListPager
方法需要一个 'page' 参数(假设您使用的是 PagedList.Mvc
NuGet 包中的方法),您可能希望这样编写搜索函数:
GetSearchResultsJson(int page, int SearchCriteria searchCriteria)