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

问题描述 投票:0回答:1

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

请参考附图

每次我单击排序/分页器时,查询字符串都会像这样不断增长,“__swhg”参数不断增长,因为 WebGrid 中的“href”属性将其添加到简单的“?sort=&sortdir=”中”或“?page=”。!

ajax sorting asp.net-mvc-4 pagination webgrid
1个回答
4
投票

此参数代表唯一的时间戳,并有意添加到每个 url 中。由于 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}/, '');
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.