formulář odeslání dat při obnově stránky   zodpovězená otázka

ASP.NET WebForms

Mám formulář ve výchozím zobrazení edit. Poradí mi někdo jako ošetřit aby nedošlo k opětovnému odeslání dat při reload stránky ( refresh ) - zapíše se mi pak údaj do databáze několikrát když uživatel dá F5.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A kdy vkládáte data do DB,respektive v jaké metodě/části?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to súčasťou tohto článku:

http://vbnet.cz/clanek--112-zaciname_s_a...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A proč dáváte refresh? je pak logické,že se požadavek na vložení dat do DB odešle znovu!.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pri návrhu aplikácie či už desktopovej alebo webovej musíte počítať aj s tým, že používateľ bude robiť hlúposti pre vlastnú nevedomosť.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud potřebujete udělat "blbuvzdorný" systém,tak musíte celé řešení postavit jinak a zasílat data do DB řízeně - z kódu,kde si následně můžete ošetřit i případný refresh stránky.Nicméně mi to přijde zbytečné,u každé webapp,kde vkládáte data do DB a dáte F5,tak se Vás zeptá zda si přejete odeslat data opět..

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud jde jen o to zmáčknutí F5, tak určitě nejjednoduší je uživatele přesměrovat na stránku "uložení bylo úspěšné", nebo tak něco.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Přesně tak, po jakékoliv databázové operaci udělat redirect. Jinak uživatelé tu F5 budou mačkat a občas je překvapí okno s dotazem na opětovné odeslání požadavku.

Někdy se tomu říká PRG - Post, Redirect a Get.

Anebo použít AJAX, uživatelé to mají rádi a tam tyto problémy odpadají. Naneštěstí se ale objevují nové, jak to tak bývá.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback