Existuje nějaký způsob, jak změnit řetězce dotazu bez lámání ASP.Net postback?

hlasů
1

Čtení a tady kolem branky, jsem blízko, aby za předpokladu, že odpověď je „ne“, ale ...

Řekněme, že mám stránku ASP.NET, která má někdy parametr řetězce dotazu. V případě, že stránka má parametr řetězce dotazu, já chci, aby předtím, než se svlékli ho, během nebo po zpětné odeslání. Stránka má již hodně skriptu na straně klienta (čistý JavaScriptu a jQuery).

Jako příklad lze uvést, že jsem nahrát:

http://myPage.aspx?QS=ABC

Parametr QS je nutné kontrolovat, co se na stránce objeví, když se nejprve načte a je nastavena na stránku, která „volá“ ji. myPage.aspxMá formulářové prvky, které je třeba vyplnit a má tlačítko pro odeslání, který dělá zpětné odeslání. Je-li strana dokončí postback, musím se vrátil URL bude:

http://myPage.aspx

aby se zabránilo kódu na straně klienta, který se nazývá, je-li přítomen řetězec dotazu. Jinými slovy, poté, co předloží nechci straně klienta činnosti spojené s parametrem řetězce dotazu na oheň. Vím, že bych mohl přidat obsah formuláře na adrese URL řetězec dotazu parametry sami a jen přesměrování na novou adresu URL a vyhnout se předložit / postback, ale to bude vyžadovat mnohem větší typ kontroly na Codebehind vyhnout špatných dat a neformální spoofing. Předpokládala jsem, že bych mohl také nastavit skryté pole v Codebehind a podívat se na něj spolu s řetězci dotazu o zrušení straně klienta chování, pokud vracím ze zpětného vystavení, ale stále zůstává řetězec dotazu neporušený v podstatě navždy a já chci jak se zbavit ji po prvotním načtení stránky.

Nějaké nápady či osvědčené postupy?

PS - Je tu něco, co můžu dělat s majetkem Form.Action které nebudou zlomit chování postback?

Položena 09/12/2008 v 16:44
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
2

Chtěl bych použít HttpModule zachytit a přepište URL a dotaz, jak to přišlo. Jsem si 100%, ale nevěřím, že to má nějaký vliv s ViewState.

Zní to (a vypadá) složitá, ale je to vlastně docela banální a otevřený tunu zdokonalování a rozšíření (dle .NET obecně).

Odpovězeno 09/12/2008 v 17:42
zdroj uživatelem

hlasů
1

IAM není jistý, že to je to, co hledáte, ale pokud správně pochopil byste mohli udělat toto:

-na Kontrola načítání stránky pro hodnotu QS, pokud to není tam používat skryté vstupní pole.

-první stránka načte čas s QS, udělat si normální zpracování a obchod QS hodnotu ve skrytém vstupního pole.

-pokud žádné QS poté pomocí skryté vstupní hodnotu

-po postback, můžete přesměrovat na stejnou stránku, na tom místě jste mohli uživatel Request.Form [] načíst skryté vstupní pole, stále správně načíst data, ale zbavit se QS.

to dávalo smysl v mé hlavě, nejsem si jistý, že to dává smysl, ale já vás nechám rozhodnout.

Odpovězeno 09/12/2008 v 17:34
zdroj uživatelem

hlasů
1

To je pravděpodobně špatná praxe, ale v těchto případech (a ty už stačí jen ‚resetovat‘ stránky), prostě dělám Response.Redirect na stejnou stránku.

Odpovězeno 09/12/2008 v 16:47
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more