【发布时间】:2018-11-16 11:31:30
【问题描述】:
我正在使用分页列表来显示值列表。显示器工作正常。我使用提供的 Unobtrusive AJAX 来获取其他页面的数据。
这就是我的分页控件的外观。
@Html.PagedListPager(Model.CountryList, page => Url.Action("GetCountries", "Dashboard", new {page}), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(PagedListRenderOptions.ClassicPlusFirstAndLast, new AjaxOptions()
{
HttpMethod = "POST",
UpdateTargetId = "panel1",
OnSuccess = "onAjaxSuccess",
OnFailure = "onAjaxFailure"
}))
这很好用。
现在我在页面中有一个文本框和一个下拉框,我想将其中的值与 Html 分页列表一起传递。
@Html.TextBox("SearchCountryName", new { name = "SearchCountryName", @class = "form-control", placeholder = "Search Country" })
@Html.DropdownList("Continent", ContinentList)
我的控制器代码是:
public PartialViewResult GetDashboardBody(string country,string continent,int? page)
{
}
我想做类似的事情
@Html.PagedListPager(Model.CountryList, page => Url.Action("GetCountries", "Dashboard", new {country = $("#SearchCountryName").val(),continent = $("#Continent").val(),page}), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(PagedListRenderOptions.ClassicPlusFirstAndLast, new AjaxOptions()
{
HttpMethod = "POST",
UpdateTargetId = "panel1",
OnSuccess = "onAjaxSuccess",
OnFailure = "onAjaxFailure"
}))
但这不起作用。
那么如何使用 html.PagedList 将控件的当前值作为参数传递给操作方法?
【问题讨论】:
-
您是否尝试将下拉列表中的选定项目传递到下一页?如果是这样,您将不得不忘记 Razor 并使用一些 jQuery 来检测页面 #click 并手动处理它。如果你想传递更复杂的对象,你需要一个路由值字典。
-
这毫无意义。如果您更改搜索/过滤器值,那么您应该在单独的
ajax调用中执行此操作(以便显示新结果的第一页),而不是尝试更改现有按钮的 url。 -
@theFallenOne 我明白了,但您能否发布您自己的答案,看看您做了什么。我有同样的问题。
标签: c# jquery ajax asp.net-mvc pagedlist