Avatar billede jess_chr Nybegynder
08. juni 2005 - 09:42 Der er 6 kommentarer

Server.Execute() fejler når den køres anden gang!

jeg har efterhånden forsøgt et utal af løsninger på dette problem. jeg har kun en enkelt aspx side samt den tilhørende cs fil, og problemet er at selvom jeg opretter en knap som ændre layoutet på siden til det jeg vil have, bliver dette ikke vist før der er blevet lavet en "Response.Redirect();" eller lign.

page load bliver ikke kørt, så selvom siden reloades har jeg ikke en event jeg kan anvende til at køre en "Response.Redirect();", jeg har goolet efter svar men har ikke lige fundet noget jeg kunne bruge til noget...

som sagt ligger siden på en enkelt aspx side med den tilhørende cs fil, og de elementer på siden der ikke er konstante bliver oprettet on-demand, jeg har lavet en lille eksempel på hvad jeg mener nedenfor, den er ikke lavet i compiler så overse fejlende så godt som muligt...

using "alt muligt"...

namespace etellerandet{
    public class start : System.Web.UI.Controls{
        public static opgaver O = new opgaver();
        public static deadlines O = new opgaver();
        public static rediger O = new opgaver();

    }
   
    public class opgaver : start{
        public string id = 0;       
        public DropDownList dl1 = null;
       
        visopgaver(){
            /*her lægges dropdownlisten ind i en tabel
            sammen med lidt grafik, og en knap bliver
            oprettet med en tilknytning til knapfunktion*/
        }
        public knapfunktion(Objekt sender, arguments e){
            Response.Redirect("start.aspx"); //Laver fejl nr.1
                -eller-
            Server.Transfer("start.aspx"); //Laver fejl nr.2
                -eller-
            Server.Execute("start.aspx"); //Laver fejl nr.2
        }
    }

    public class deadlines : start{

    }

    public class rediger : start{

    }
}

Fejl nr.1: System.Web.HttpException: Svaret er ikke tilgængeligt i denne kontekst...

- Denne funktion anvender jeg på knapper jeg har trukket ind fra toolbaren, og her virker de perfekt.

Fejl nr.2: System.NullReferenceException: Objektreferencen er ikke indstillet til en forekomst af et objekt...

- Disse funktioner virker begge første gang man trykker på en af de knapper der er tilknyttet funktionen, men anden gang laver den denne fejl.


det jeg leder efter er enten løsningen på et af problemerne så det kommer til at virke, eller et eventuelt alternativ der ikke kræver at jeg skal omstrukturer min side.

På forhånd tak...
Avatar billede burningice Nybegynder
08. juni 2005 - 16:32 #1
det er svært at sige ud fra din psuodo-kode. Kan du ikke prøve at paste noget af din konkrete kode? For umiddelbart ser det fint nok ud, bortset lige fra at du har valgt samme navn (O) for dine tre fields i klassen start.
Avatar billede jess_chr Nybegynder
08. juni 2005 - 18:48 #2
koden er sådan set rigtig nok undtagen det med de tre fields, det er en copypaste bommert... "Psuodu-koden" er ellers fuldstændig magen til den konkrete kode den er blot længere, så det ville ikke hjælpe at sætte denne ind.

klasserne deadlines og rediger er det samme princip som klassen opgaver, så dem behøver du ikke at tage dig af.

Dog kan jeg lige nævne at den side som jeg vil sende brugeren til er den samme som den jeg kommer fra, det kan godt være derfor den fejler, men det jeg vil have den til er at opdatere hele siden fra klassen opgaver.

Så hvis du eventuelt har et eksempel på dette der virker, ville det være godt...
Avatar billede burningice Nybegynder
10. juni 2005 - 10:59 #3
HttpException ved Response.Redirect tyder på at du har skrevet noget til klienten inde at du laver dette kald. Dette problem løser man ved at bruge OutputCaching, så mit umiddelbare gæt vil være at du har slået det fra. Rigtigt eller forkert gættet?
Avatar billede jess_chr Nybegynder
12. juni 2005 - 16:41 #4
Jeg har aldrig hørt om OutputCaching, kan du eventuelt lige uddybe det lidt... jeg søgte efter det i msdn biblioteket men fandt det ikke!
Avatar billede jess_chr Nybegynder
12. juni 2005 - 20:22 #5
Jeg var lidt for hurtig(ironisk ment)... jeg fandt hvad du snakkede om under Response, men værdien buffer er sat til true...

For at være sikker satte jeg den til true igen når jeg trykker på min knap, inde fra klassen, men den kom med den sammes "HttpException" - citat: kaldet er ikke gældende i denne kontekst!(eller noget der hen af)
Avatar billede burningice Nybegynder
25. juni 2005 - 11:23 #6
hmmm... typisk vil den fejl komme hvis du kalder Response.Redirect et sted hvor koden ikke er en del af en Context.

Prøv dette istedet:

HttpContext.Current.Response.Redirect("hej");

En ting som forresten også kan volde problemer er at dine variabler er static, da de så kan leve på tværs af requests. Hvorfor er de egentlig det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester