[ASP.NET] Page_Load wordt niet afgevuurd

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een website waarin een aantal pagina's zitten. Het is redelijk straightforward. Wat databound controls en wat simpele eventjes. Ook heeft iedere pagina een Page_Load en het is me eigenlijk nooit opgevallen dat ie nooit uitgevoerd wordt, omdat ie altijd leeg bleef. Nu is er een nieuwe bijgekomen waar iets in de Page_Load moet, maar dat wordt dus niet uitgevoerd.

Het is in elk geval geen code die "weggeoptimaliseerd" wordt of iets in die richting, want het is duidelijk dat de code *echt* uitgevoerd moet worden. Verder staat er AutoEventWireup="true" in de @Page directive, dus ook daar kan het probleem em niet zitten. Ook heb ik al de Page_Load handler helemaal weggegooid, en opnieuw aangemaakt door op de pagina in de designer te dubbelklikken. Maar helaas, ook dan wordt de code erin nooit uitgevoerd.

Ik gebruik VS2005, dus ik kan ook niet in de designer generated code (ofzo) kijken die VS2003 altijd verborg in een region. Dat is in VS2005 niet meer.

Iemand een idee wat ik kan proberen om te kijken waar dit probleem vandaan komt?

日本!🎌


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
De page_load wordt altijd uitgevoerd.

zet je een breakpoint op de page_load?


Je wil ook niet in de generated code iets doen, deze wordt namelijk overschreven als je daar iets in wijzigt.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 19-02 15:07
Ik neem aan dat je de juiste signature gebruikt voor de Page_Load ? Dus dat is met een object en een EventArgs als parameter.

  • lier
  • Registratie: Januari 2004
  • Laatst online: 22:43

lier

MikroTik nerd

En ik neem aan dat je de applicatie in debugmode start, of de debugger aan je process koppelt ?
In release mode zal weinig gebeuren (of onderschat ik je nu heel erg...)

Eerst het probleem, dan de oplossing


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:53
De designer generated code staat nu toch in een andere file ? 'k weet wel niet hoe hij precies heet, maar je kan die dus wel nog altijd bekijken.

Wellicht hangt je event-handler (je page_load method dus) niet aan de Load event ? Maar dat zou je wel in de designer generated code moeten kunnen zien.
Ben je echter zeker dat die page-load niet uitgevoerd wordt ? Heb je idd al eens een breakpoint in je code gezet , in die method ?

https://fgheysels.github.io/


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
4of9, bij mij dus niet :) En een breakpoint in Page_Load stopt ie dus niet op.

Ik denk dat sommigen van jullie nog met VS2003 in het hoofd zitten... VS2005 maakt nml zelf de Page_Load aan, dus de signature kan niet verkeerd zijn. Maar voor de goede orde: de signature klopt.

Een webapplicatie kun je ook niet in release/debug mode zetten. Debug-mode staat ie altijd in, en hij wordt in release-mode gecompileerd als je em publiceert naar (bijv) de productieomgeving. Ik doe gewoon runnen en dan is ie in debug-mode. Breakpoints elders in de code worden dan ook gewoon gevangen.

Ohja, en designer generated code staat idd in een andere file, maar dat is geen statische file meer ofzo en kun je ook niet bij komen.

日本!🎌


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik heb net voor de vorm even een ASP.NET 2.0 pagina gemaakt met VS2005. Bij deze pagina is AutoEventWireup ook true en de achterliggende pagina heeft idd gelijk een Page_Load functie gekregen. Deze wordt bij mij zonder problemen uitgevoerd, dus lijkt het erop dat jij zaken doet die niet default zijn.

Zou je de gehele <% @ Page %> directive eens kunnen laten zien?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Ik denk niet dat daar veel spannends in staat, maargoed:
ASP.NET:
1
<%@ Page AutoEventWireup="true" CodeFile="PersonalTrajectTitel.aspx.cs" Inherits="PersonalTrajectTitel" Language="C#" %>


En voor de volledigheid, misschien maakt het uit dat ik dit heb gedaan:
C#:
1
public partial class PersonalTrajectTitel: NonCachingPage
In die NonCacheingPage zit alleen maar een overridden OnLoad methode waarin clientside cacheing
uitgezet wordt... Wordt in de oorspronkelijke OnLoad soms die Page_Load op magische wijze aangeroepen?

[ Voor 8% gewijzigd door _Thanatos_ op 08-06-2006 17:32 ]

日本!🎌


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Misschien stomme vraag hoor, maar staat de breakpoint in de juiste pagina?

(is mij ook wel eens overkomen)

in VS2005 kun je een startpage instellen namelijk.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb em gevonden...
C#:
1
2
3
4
5
6
7
8
public class NonCachingPage: System.Web.UI.Page {
    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);
        Response.Cache.SetExpires(DateTime.Now);
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetValidUntilExpires(false);
    }
}

Ik was gewoon die base.OnLoad(e); vergeten :)

日本!🎌


  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 19-02 15:07
Hehe, logisch, een functie overriden en dan de originele niet meer aanroepen :P
Pagina: 1