WebGrid分页/排序AJAX正在扩展查询字符串

时间:2014-02-01 09:48:14

标签: ajax asp.net-mvc-4 sorting paging webgrid

我在cshtml视图中有一个WebGrid,我正在使用ajaxUpdateContainerId参数使用AJAX对其进行分页/排序。但是,每次我点击链接来分页/排序WebGrid时,href都在变化,查询字符串会添加一个“__swhg”参数。

Please refer the attached image

每次点击sort / pager时,查询字符串都会像这样继续增长,“_ _ _ sgwhg”参数会不断增长,因为WebGrid中的“href”属性会将其添加到简单的“?sort = & amp; ; sortdir = “或”?page = “。!

1 个答案:

答案 0 :(得分:3)

此参数表示唯一的时间戳,并且会故意添加到每个网址。由于AJAX请求正在使用GET动词,因此浏览器可能会缓存这些请求。这意味着当用户单击链接时,可能永远无法访问您的服务器。该参数确保不会缓存响应,因为每次获得唯一的URL。目前这在WebGrid中是硬编码的,没有办法禁用它。

当然,如果由于某种原因你想要用脚射击并删除这个参数,一种可能性是订阅自定义的AJAX回调:

var grid = new WebGrid(
    Model, 
    ajaxUpdateContainerId: "grid", 
    ajaxUpdateCallback: "callback"
);

您可以替换所有链接并删除__swhg参数:

function callback() {
    $('a[data-swhglnk="true"]').attr('href', function () {
        return this.href.replace(/&__swhg=[0-9]{13}/, '');
    });
}