Toon posts:

[ASP.NET/IE] Refresh zonder opnieuw te posten

Pagina: 1
Acties:
  • 223 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik werk met ASP.NET waarbij pagina's vrij vaak een post uitvoeren naar zichzelf, de zgn. postback. In IE is het dan lastig om een pagina opnieuw te tonen, omdat er telkens gevraagd wordt of je de gegevens opnieuw wil posten. Is er een manier om te refreshen zonder opnieuw te posten? In firefox klik je op de groene pijl naast het adres en de pagina wordt opnieuw getoond zonder te posten (inclusief eventuele wijzigingen dus).

Bedankt!

  • André
  • Registratie: Maart 2002
  • Laatst online: 27-11 10:04

André

Analytics dude

Dan zul je niet naar dezelfde pagina moeten posten maar naar een andere tussenpagina. Alleen dat is waarschijnlijk geen oplossing in jouw geval?

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 29-11 20:20
Je zou de pagina naar zichzelf kunnen redirecten met een
code:
1
Location:
header, nadat je de postback hebt verwerkt.

Verwijderd

Topicstarter
Nee, naar een andere pagina posten maakt het aanzienlijk moeilijker om in ASP.NET te ontwikkelen. Het gaat me ook niet zozeer om de ervaring van de eindgebruiker, hoewel ik in dat geval inderdaad zou redirecten, maar meer voor mijzelf tijdens het ontwikkelen. Ik wil ff snel refreshen om kleine wijzigingen te zien, maar moet telkens de postback bevestigen. Ik heb al ctrl-F5 en dergelijke geprobeerd in IE maar nog niks gevonden.

  • André
  • Registratie: Maart 2002
  • Laatst online: 27-11 10:04

André

Analytics dude

Ik verplaats hem even naar Programming

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 06 april 2007 @ 12:30:
Nee, naar een andere pagina posten maakt het aanzienlijk moeilijker om in ASP.NET te ontwikkelen.
Onzin. Alsof het voor je ontwikkeling uitmaakt of je meteen vanuit pagina A naar pagina B post en dan pagina B laat zien, of dat je pagina A naar pagina B laat posten, die dat vervolgens verwerkt en dan pagina C laat zien. De pagina's A, B en C kunnen vervolgens best hetzelfde bestand zijn onder een andere conditie, dus dan laat je een formulier zien als de pagina voor het eerst opgevraagd wordt en er niets in post/sessievariabelen zit, laat je de zooi verwerken als er wel iets in de post zit maar niet in een sessie (waarna je het dus wél in een sessie zet) en dan redirect je door naar dezelfde pagina (Location header) waarbij je op die derde pagina checkt wat er dan in je sessie staat zodat je dat weer kunt geven.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Verwijderd schreef op vrijdag 06 april 2007 @ 12:30:
Nee, naar een andere pagina posten maakt het aanzienlijk moeilijker om in ASP.NET te ontwikkelen.
Is dat niet het idee van een webapplicatie? Dat je data post van de ene naar de andere pagina? Volgens mij draait ASP.NET toch ook om dat principe :?

  • Tyf
  • Registratie: December 2002
  • Laatst online: 28-11 20:18

Tyf

Gebruik ajax. er is voor .net een ajax uitbreiding die heel simpel toelaat post-backs te creëren zonder dat de ganse pagina moet ververst worden. Op misschien 30 minuten ben je er mee weg. Gewoon eens kijken op http://ajax.asp.net/ en de voorbeeldjes. Gebruik je ajax zonder 1 woord javascript ergens tussen te moeten steken. Hiermee kun je heel simpel bijvoorbeeld een lijstje updaten op een pagina zonder dat de ganse pagina herladen moet worden.

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

^^ idd, gebruik gewoon de UpdatePanel en je bent klaar.
Overigens zou je de vraag of je de gegevens wilt herposten bij een refresh, alleen moeten krijgen als je een pagina refresht die al gepostbacked is. Gevaar daarbij is dat je control events laat afgaan en dingen in gang zet waar dat niet de bedoeling is.

En anders kun je nog altijd de viewstate uitschakelen en meer volgens een PHP/ASP model werken.

[ Voor 5% gewijzigd door Not Pingu op 06-04-2007 13:55 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

Verwijderd schreef op vrijdag 06 april 2007 @ 12:30:
Nee, naar een andere pagina posten maakt het aanzienlijk moeilijker om in ASP.NET te ontwikkelen.
Daarvoor hebben we Cross page postbacks hoewel die idd wat lastiger te implementeren zijn.

edit:
oeps, ik wilde deze quote aan mijn vorige post toevoegen :X

[ Voor 9% gewijzigd door Not Pingu op 06-04-2007 14:00 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


Verwijderd

Topicstarter
Wow. Ik zocht echt een heel ander antwoord. Helaas was deze pagina verplaatst naar Programming, waardor het nu in eens over programmeren gaat (het gaat eigenlijk over IE maar ik had ASP.NET in de titel gezet :z). Laat ik kort even zeggen dat het in ASP.NET gebruikelijk is naar dezelfde pagina te posten. Het is standaard gedrag en de complete page lifecycle is gebouwd rondom deze postback.

Update panels verhelpen in een aantal scenario's de problemen met postback (door bijvoorbeeld een GridView in een update panel te zetten). Maar het is zeker niet dé oplossing voor alle problemen van dergelijke aard (tenzij je voorstelt om gewoon complete pagina's in een update panel te wikkelen).

Ik waardeer enorm dat jullie willen helpen, maar ik zocht eigenlijk een ander antwoord. Namelijk om a) tijdens ontwikkeling b) voor mijzelf (gaat niet om gebruikers ofzo) c) in IE, een manier te vinden om te doen wat Firefox ook kan. Na een postback, de pagina verversen zonder de postback opnieuw uit te voeren. Kan dat? (In Firefox klik je op het groene pijltje naast het adres, in IE wordt dan toch gepost. |:()

Bedankt!

  • WormLord
  • Registratie: September 2003
  • Laatst online: 01-12 13:49

WormLord

Devver

Nee, dat kan niet.
IE ziet dat je op die pagina gekomen bent door een POST, en zal daardoor bij een refresh weer opnieuw die POST willen doen.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Wat die knop in Firefox doet is een GET uitvoeren met het adres in de adresbalk. In IE bestaat deze knop inderdaad niet. Wat je kunt doen is in je adresbalk klikken en dan op enter drukken.
Pagina: 1