我在 cshtml 视图中有一个 WebGrid,并且我正在使用 ajaxUpdateContainerId 参数使用 AJAX 对它进行分页/排序。但是,每次我单击对 WebGrid 进行分页/排序的链接时,href 都会发生变化,并且查询字符串会添加一个“__swhg”参数。
每次我单击排序/分页器时,查询字符串都会像这样不断增长,“__swhg”参数不断增长,因为 WebGrid 中的“href”属性将其添加到简单的“?sort=&sortdir=”中”或“?page=”。!
此参数代表唯一的时间戳,并有意添加到每个 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}/, '');
});
}