Ajax Pager控件踩的坑

最近在维护一个项目,源程序用到了MVC Pager控件,还是比较老的2.0版本。

MVC Pager控件的主要作用就是用来分页,分页发送Ajax请求。我的那个页面需要分页后局部刷新,所以要求发送Ajax请求到服务器。而程序其它部分的分页功能都是靠2.0版本的MVC Pager控件来完成的,为了保持统一性,在我的那个页面里,同样使用了该控件来完成分页局部刷新的功能。可是问题是,每次点击页码发送的请求都不是Ajax请求,所以会导致页面整体都刷新,这不是我要的结果。

最后在我同事的提点之下,我才知道原来对于2.0的版本,在使用Ajax分页模式前,首先要注册MVC Pager客户端jQuery插件。具体代码需要在View中添加

1
@{Html.RegisterMvcPagerScriptResource();}

,然后要引用jquery.unobtrusive-ajax.min.js脚本文件,在web.config文件里,添加以下代码:

1
2
<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

最后,还有一点会造成无法局部刷新表格,那就是分页条里面指定的UpdateTargetId 一定要是分页条的父级节点,而不能同级,经过我验证确实是这样子的。

我后面几步都做了,唯独第一步,@{Html.RegisterMvcPagerScriptResource();},没有添加,导致我每次发送的请求都不是Ajax请求。

avatar

chilihotpot

You Are The JavaScript In My HTML