zabezpiecznie formy przed kolejnym Save

0

Witajcie, bardzo banalne pytanie

Asp.Net MVC plus Entity Framework. Mam formę, wprowadzam dane, zapisuje do bazy i kieruje na stronę z listą;
problem: można skorzystać z przycisku "Wstecz" w przeglądarce i mam znów formę z tymi sami danymi i mogę znów zapisać te same dane.
Jak uchronić się przed tym?

pozdrawiam

0

To zależy od danych, jeśli jakieś atrybuty mają być unikalne, to załóż odpowiedni indeks w bazie.

0

Mam kolumnę Id, gdzie numer int jest generowany automatycznie przez bazę i po SaveChanges(). Chciałem ominąć to poprzez "manualne" nadanie kolejnego numeru w Id w akcji GET (bierzesz max ID + 1) ale przy równoczesnym wprowadzaniem danych przez użytkowników może nastąpić konflikt tych numerów. Nie mam kolejnych rekordów, które mogą być unikalne.
W pracy zapewne nie raz spotkałeś się z takim przypadkiem. Jak to rozwiązujesz?

0
szymon7500 napisał(a):

W pracy zapewne nie raz spotkałeś się z takim przypadkiem. Jak to rozwiązujesz?

Owszem, nie raz lecz zero. :)
Nigdy nie widziałem, aby ktoś stosował ID, które nie było automatycznie generowane (czy przez bazę, czy przez ORM). Jak sam widzisz, znacznie utrudnia to życie.

0

Nie chodziło mi o generowanie ID, napisałem, że miałem taki pomysł, który upadł. ID generuje się automatycznie.
A "w pracy i z przypadkiem" miałem na myśli, że zapewne takie pytanie jak moje miałeś nieraz. Zapewne klient zgłaszał Ci problem, że po wypełnieniu formularza i zapisaniu go, mógł te same dane wprowadzić ponownie poprzez użycie przycisku "Wstecz" w przeglądarce i potem "Save" lub po prostu użyć F5.

3

Po wysłaniu formularza należy przekierować użytkownika na stronę podsumowania/potwierdzenia/listy rekordów.
Poczytaj o post - redirect - get.

0

Czytałem o tym wzorcu, sprawdza się, choć chyba tak nie do końca.

0

Czemu nie do końca?

0

Formularz do wprowadzania danych POST; REDIRECT do strony z listą i GET lista. Back na przeglądarce dostaję formularz wypełniony wcześniejszymi danymi, przycisk Save działa, refresh nie.

http://dariusztarczynski.blogspot.com/2010/01/wzorzec-post-redirect-get-w-aspnet-mvc.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1