簡體   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