Asp.Net Core MVC6中X.PagedList分页触发页面跳转而非局部刷新问题
排查X.PagedList Ajax分页局部刷新失效的关键遗漏点
确认Ajax依赖脚本是否正确加载
Asp.Net Core MVC 6中,X.PagedList的Ajax分页功能依赖jQuery和jquery.unobtrusive-ajax.js,需确保两者在父视图中按顺序引入:<script src="~/lib/jquery/jquery.min.js"></script> <script src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js"></script>若使用LibMan管理依赖,需检查包是否安装完整、文件路径是否正确,同时打开浏览器控制台确认无脚本加载失败报错。
检查PartialView分页控件的Ajax配置
生成分页链接时,必须明确设置AjaxOptions的核心参数,确保与目标元素匹配:@Html.PagedListPager(Model, page => Url.Action("ResultPaging", new { page }), new PagedListRenderOptions { AjaxOptions = new AjaxOptions { UpdateTargetId = "dvBody", HttpMethod = "GET", InsertionMode = InsertionMode.Replace } })注意
Url.Action中的控制器、方法名需与后端接口完全一致,避免拼写错误。验证Unobtrusive Ajax功能是否启用
在Program.cs中,必须添加Unobtrusive Ajax服务配置,否则分页链接会退化为普通跳转链接:builder.Services.AddControllersWithViews() .AddUnobtrusiveAjax(); // 关键配置,不可遗漏确认控制器Action的返回类型
ResultPaging接口必须返回PartialViewResult,禁止返回包含布局页的ViewResult,示例代码:public IActionResult ResultPaging(int? page) { var pageNumber = page ?? 1; var pageSize = 10; var data = // 你的数据查询逻辑 var pagedList = data.ToPagedList(pageNumber, pageSize); return PartialView("_ResultPagingPartial", pagedList); }检查页面元素ID唯一性
确保整个页面中仅存在一个id="dvBody"的元素,重复ID会导致Ajax无法定位正确的更新目标。
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

