繁体   English   中英

在 ASP.NET MVC 中,如何避免或提醒人们编辑相同的表单或尝试编辑过时的数据?

[英]In ASP.NET MVC, how can I avoid or alert people from editing the same form or trying to edit stale data?

我有一个 ASP.NET MVC 站点,还有一个 web 页面,您可以在其中看到订单列表。

您可以双击一行,这将打开一个详细信息页面(授权用户将看到一个带有大量文本框、文本区域、单选按钮等的大表单)。

最初只有一个有权编辑订单的人,所以没有问题,但现在用户正在组建团队,在某些情况下有几个人(10+)有权编辑同一个订单,所以他们可能有详细信息 web同时向上翻页。

现在存在两个问题。

  1. 人们现在抱怨他们所做的更改立即被覆盖,因为其他人在同一时间编辑相同的订单,这造成了很多混乱。

  2. 如果人们整天都离开详细信息页面,他们可能会有一个非常旧的视图版本(因为其他人可能一整天都保存了更改)。 没有任何通知他们他们的页面版本已过时,然后应该在编辑之前刷新页面。

我正在寻找有关处理上述两个问题的最佳方法的建议。

此外,如果有某些库或模式可以利用(相对于从头开始构建)。

关于并发,您有两种选择:

  1. 悲观并发(锁定)。

    您需要实施一个锁定系统,在该系统中您对只读或更新/删除发出锁定

  2. 乐观并发

    LastUpdated时间戳列添加到您的表中,并在更新/删除时在WHERE (连同 ID)中使用它。 如果 0 行受到影响,那么您正在尝试更新/删除过时的数据。

在 ASP.NET MVC with Entity Framework中阅读有关如何处理问题的信息。

您还可以实施一个系统来通知同一页面上的用户。 一种方法是使用SignalR并为每个页面创建一个 您可以实时广播更改的值,甚至加载新值。

暂无
暂无

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

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