繁体   English   中英

asp.net web 表单在多个浏览器选项卡中

[英]asp.net web form in multiple browser tabs

我在网格视图中有一个网格视图和一个编辑按钮。 在编辑按钮上单击我正在打开一个新的 aspx 页面,其中包含用于输入数据的文本字段。 当用户复制 gridview 的 URL 并在任何浏览器的新选项卡中打开它时,然后单击两个不同记录的编辑按钮。 如果用户更改第一个选项卡中的任何内容并提交。 它会更改第二个选项卡上记录的信息。 这是因为我将 session 中的用户 ID 传递到表单 aspx 页面,当用户在新选项卡中打开第二条记录时,session 得到更新。

是否只有两种方法可以将数据传递到 aspx 页面?

  1. 使用 session
  2. 使用查询字符串

我不想使用查询字符串。 请帮忙谢谢。

您正在编写一个 ASP.Net 应用程序,所以最终您能做的只有这么多。 您可以通过浏览器请求一些东西,但如果他真的这样做,这完全取决于它。

您可以使用HTML Links 目标属性使其不太可能意外发生。 这要求浏览器重新使用该记录的任何已打开的选项卡。 但这不会阻止专职人员仍然打开 2 个副本。

一般来说,避免竞争条件的一种非常简单的方法是SQL rowversion列。 您使用 rest 检索行版本。 您将它保存在一个隐藏的公式字段中(这就是它们的用途)。 写入更新时,在写入之前检查它是否仍然匹配。 如果是,你更新。 如果不是,那么从那时起有人修改了记录,而您拒绝更新。 可以是另一个选项卡中的同一用户,也可以是世界尽头的另一个用户。 可能是这个标签是一年前打开的,在睡眠模式下存活。 没关系 - 任何更改都会触发此保护。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM