gpt4 book ai didi

c# - 页面刷新与 IsPostBack

转载 作者:太空狗 更新时间:2023-10-30 00:35:25 25 4
gpt4 key购买 nike

我有一个索引页面,它将用户发送到单独浏览器选项卡上的编辑产品页面。

对于每个编辑过的产品,索引都会重写 Session["ProductID"]。

然后,编辑页面将包含以下代码,以便为该选项卡和产品设置唯一标识符:

if (!IsPostBack) //first time page load
{
Random R = new Random(DateTime.Now.Millisecond + DateTime.Now.Second * 1000 + DateTime.Now.Minute * 60000 + DateTime.Now.Minute * 3600000);
PageID.Value = R.Next().ToString();

Session[PageID.Value + "ProductID"] = Session["ProductID"];
}

这有效,当同一个用户打开多个选项卡时,我只在我的代码中引用 Session[PageID.Value + "ProductID"],以便我始终拥有正确的 ID。 (我在内部网的受信任环境中工作,因此我不太在意安全级别)。

如果用户按 F5 键刷新页面,就会出现我的问题。此时 Session[PageID.Value + "ProductID"] 得到他打开的最后一个产品的 Session["ProductID"]。

例如:

用户 1 在 tab1 中打开 product1

用户1在tab2打开product2

每当他们正常使用该工具时,一切正常。但是,如果:

产品 1 页面上的用户 1 点击刷新按钮 (F5) 产品 1 页面变为产品 2 页面

有没有办法检测“第一次加载/从另一个页面重定向”的页面刷新,以便我可以告诉我的页面不要更新我的 Session[PageID.Value + "ProductID"]?

最佳答案

就个人而言,我会选择 URL 参数。例如。将产品 ID 作为 URL 参数传递。

如果您需要不带参数的页面,您可以例如

  1. 将参数传递给页面。
  2. 如果参数存在并删除参数,页面将自行重新加载

这样您就可以区分第一次调用(=参数存在)和第二次+调用(参数不存在)。

关于c# - 页面刷新与 IsPostBack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com