C# MVC中的页面列表
我正在MVC应用程序中使用页面列表。我觉得它很棒! 当我尝试在页面内搜索时,它会显示当前搜索的页面数,但当我单击特定结果页面列表的第二页时,显示的页面总数是原始页面数。 为什么会这样? 这是我的控制器代码片段C# MVC中的页面列表,c#,asp.net-mvc,C#,Asp.net Mvc,我正在MVC应用程序中使用页面列表。我觉得它很棒! 当我尝试在页面内搜索时,它会显示当前搜索的页面数,但当我单击特定结果页面列表的第二页时,显示的页面总数是原始页面数。 为什么会这样? 这是我的控制器代码片段 public ActionResult Index(string sortOrder, string currentFilter,int? page, string search, string searchBy) var Users_info = from t i
public ActionResult Index(string sortOrder, string currentFilter,int? page, string search, string searchBy)
var Users_info = from t in db.Users_info_vw
where t.is_active == true select t;
ViewBag.CurrentSort = sortOrder;
if(!String.IsNullOrEmpty(search))
{
switch (searchBy)
{
case "user":
Users_info = Users_info.Where(x => x.Emp_FirstName.Contains(search)|| x.Emp_LastName.Contains(search));
break;
default:
Users_info = Users_info.OrderByDescending(x => x.User_id);
break;
}
ViewBag.CurrentFilter = search;
int pageSize = 15;
int pageNumber = (page ?? 1);
var returnMe = Users_info.ToPagedList(pageNumber, pageSize);
return View(returnMe);
}
我认为:
<div class="paging">
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
</div>
@Model.PageCount的@页(Model.PageCountUrl.Action(“索引”),
新建{page,sortOrder=ViewBag.CurrentSort,currentFilter=ViewBag.currentFilter})
有人能帮我解决这个问题吗?我想原因是您没有在第二页的控制器中发送正确的参数名。例如,您正在使用控制器中的
search
作为参数名来搜索数据库中的用户,但在页面列表绑定时,您将此值放入currentFilter
参数中
因此,用户currentFilter
可以筛选用户记录,也可以通过页面列表发送search
参数,例如:
解决方案1(在控制器中)
在此之后,不要忘记再次分配ViewBag,例如ViewBag.CurrentFilter=CurrentFilter代码>
解决方案2(在视图中)
希望这有帮助 你怎么称呼搜索?使用ajax调用还是重新加载完整页面?如果使用Ajax,则调用可能是不重新加载寻呼机值。我正在使用Html.BeginForm进行搜索。我看不到填充了@Model.PageCount
的位置。你有那个密码吗?另外,我不确定哪一个属性是不正确的。你能说得更清楚些吗?@Charx,我用的是这个参考:页面列表。
Users_info = Users_info.Where(x => x.Emp_FirstName.Contains(currentFilter)
|| x.Emp_LastName.Contains(currentFilter));
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, search = ViewBag.CurrentFilter }))