在jquery中为url添加参数,并在asp.net后面的代码中重用它们

append parameters to url in jquery and reuse them them in code behind asp.net

本文关键字:代码 net url 中为 jquery 添加 参数 asp 并在      更新时间:2023-09-26

我有一个aspx页面(URl像XYZ。aspx),并在其中显示一些10图像和数据和图像的颜色作为page_load事件上的过滤器,当单击该颜色过滤器时,我正在进行ajax调用并获得相应的数据并替换旧数据并显示这些2,3图像结果。我的URL没有改变,因为它是ajax调用,如果我刷新页面(XYZ.aspx),它将再次显示这10个图像和数据。但我想追加所选颜色的url(如XYZ.aspx/color -blue,红色),当我做ajax调用,如果我刷新页面有url XYZ。aspx/Color-blue,red然后我可以在代码后面读取这些参数,并获得相关的2,3图像并显示在page_load事件中,而不是10图像和数据。我应该怎么做,最好的方法是,这已经实现了,你可以看到在flipkart过滤器在产品列表页面。

据我所知,您可以使用称为history的特殊浏览器对象手动保存此URL。因此,在进行ajax调用之前,将您的颜色参数附加到url字符串,即像这样

var url = <url of your controller method> + "?color=blue,red;

然后使用历史对象- pushState的方法保存此url,如下所示:

history.pushState({ url }, "", url);

这将改变浏览器地址栏中的url,所以当你刷新页面时,必要的数据将从服务器加载。

在你的ajax请求中使用这个url(不需要设置参数)

在服务器端使控制器方法接受一个string参数并获取您的数据(我相信这是您已经完成的方式)。请注意,当您使用浏览器按钮向后/向前导航时,您应该手动执行一些操作来恢复此状态。

当我再考虑这个问题时,我意识到你可能会遇到一个问题。当刷新页面时,您将只收到数据,而没有相应的视图。为了解决这个问题,您可以检查它是否是ajax调用(调用Request.IsAjaxRequest()),并返回数据/视图与数据(其中一个符合您的需求)。