2009-07-27 7 views
7

Ich bin sehr neu in ASP.NET und, nachdem ich meinen Kopf auf a few problems geschlagen habe, frage ich mich, ob ich etwas falsch mache (ich habe eine schlechte Angewohnheit, das zu tun). Ich möchte erfahren, wie ASP.NET funktioniert.Wo sollten Dinge in einer ASP.NET-Seite getan werden?

Meine Frage ist: Wo kann ich Dokumentation finden, die mich bei der Entscheidung darüber, wo was zu verarbeiten ist, finde?

Als einige spezifische Beispiele (Ich habe Interesse an Antworten auf diese, aber ich würde eher an einer Ressource hingewiesen werden, dass allgemeinere Antworten gibt):

  • Welche Verarbeitung sollte ich in Page_Load tun?
  • Welche Verarbeitung sollte ich mit dem Ereignis Load machen?
  • Was kann ich in Page_Unload tun?
  • In welcher Reihenfolge werden die Dinge erledigt?
  • Wann wird jedes Ereignis ausgelöst?
  • Was ist der Seitenlebenszyklus?

edit: this question könnte auch für einige Menschen von Nutzen sein.

+2

Der ASP.Net-Seitenlebenszyklus beansprucht ein anderes Opfer. – womp

+0

Was? Bin ich jetzt dazu verdammt, süchtig zu werden oder so? '' – BCS

+0

Nein, nur nicht produktiv. :-) –

Antwort

4

Hier sind einige gute Links, die Sie zu erhalten begonnen. Das Verständnis von , wie der ASP.NET-Lebenszyklus zusammen passt, ist entscheidend für das Verständnis, wie Ihr Code damit interagieren wird.

ASP.NET Page Life Cycle Overview:

Wenn eine ASP.NET-Seite ausgeführt wird, die Seite einen Lebenszyklus durchläuft, in dem es eine Reihe von Verarbeitungsschritten führt. Dazu gehören Initialisierung, Instanziierungssteuerelemente, Wiederherstellen und Aufrechterhaltungsstatus, Laufereignis Handler-Code und Rendering. Es ist wichtig für Sie zu verstehen, die Seite Lebenszyklus, so dass Sie Code im entsprechenden Lebenszyklus Bühne für den beabsichtigten Effekt schreiben können. Außerdem, wenn Sie benutzerdefinierte Kontrollen entwickeln, müssen Sie mit Lebenszyklus der Seite, um richtig Kontrollen initialisieren, bevölRegelEigenschaften mit Ansichtszustandsdaten vertraut sein, und jede Steuer Verhalten Code ausführen. (Der Lebenszyklus eines -Steuerelements basiert auf dem Seitenlebenszyklus , aber die Seite löst mehr Ereignisse für eine Steuerung aus, als für eine ASP.NET-Seite allein verfügbar sind .

)

The ASP.NET Page Life Cycle:

Wenn eine Seite Anfrage an den Server Web gesendet wird, sei es durch eine Vorlage oder Standortwechsel wird die Seite durch eine Reihe von Ereignissen während seiner Schaffung laufen und Entsorgung. Wenn wir versuchen, ASP.NET-Seiten zu bauen und diese Ausführung Zyklus wird nicht berücksichtigt, können wir eine Menge Kopfschmerzen für uns selbst verursachen. Wenn jedoch verwendet und korrekt verarbeitet wird, kann der Ausführungszyklus einer Seite ein effektives und leistungsfähiges Werkzeug sein. Viele Entwickler sind , die verstehen, was passiert und wenn es passiert ist entscheidend zum effektiven Schreiben von ASP.NET-Seiten oder Benutzersteuerelemente. Sehen wir uns also in die zehn Ereignisse einer ASP.NET Seite von der Erstellung bis zur Entsorgung genauer an. Wir werden auch sehen, wie man in diese Ereignisse eintaucht, um unseren eigenen kundenspezifischen Code zu implantieren.

+0

Beide Links sehen nützlich aus. Vielen Dank. – BCS

5

Das erste, was Sie lernen müssen, um die Fragen zu verstehen, die Sie gerade gestellt haben, ist: PAGE LIFE CYCLE. Manchmal ist es eine Schlampe, besonders der ViewState-Teil.

• Welche Verarbeitung sollte ich in Page_Load durchführen?

• Welche Verarbeitung sollte ich mit dem Load-Ereignis durchführen? = Page12

• Was kann ich in Page_Unload tun? Aufräumen

• In welcher Reihenfolge werden die Dinge ausgeführt? SEITENLAUFZYKLUS

• Wann wird jedes Ereignis ausgelöst? SEITENLAUFZYKLUS

• Was ist der Seitenlebenszyklus? alt text http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg

Edit: Bildquelle: http://www.eggheadcafe.com/articles/20051227.asp

Weitere Informationen: http://www.codeproject.com/KB/aspnet/PageLifeCycle.aspx

+0

Haben Sie einen Link, woher das Bild stammt? Ohne eine Erklärung wird es nicht viel Gutes geben. – BCS

+1

Nicht so eine Hündin wie Verdrahtung Event-Handler zu dynamisch erstellten Objekten;) – BenAlabaster

+0

Leider bietet dieser Link nicht viel Kontext. – BCS

5

Die von verschiedenen Leuten geschrieben Links in der Tat sehr hilfreich sind - die ASP.NET-Seite Lebenszyklus wirklich nicht immer leicht zu grok und Meister!

Auf Nugget des Rates - ich würde empfehlen, die überschriebenen Methoden gegenüber den "magisch" angehängten Methoden, z. bevorzugen die

protected override void OnLoad(EventArgs e) 

über die

protected void Page_Load(object sender, EventArgs e) 

Warum?Ganz einfach:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    // your stuff 
} 

oder:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    base.OnLoad(e); 
} 

oder sogar:

protected override void OnLoad(EventArgs e) 
{ 
    // some of your stuff 
    base.OnLoad(e); 
    // the rest of your stuff 
} 

oder sogar in den überschriebenen Methoden, Sie selbst, ob und wann die Basismethode aufgerufen wird angeben:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    // not call the base.OnLoad at all 
} 

haben Sie nicht diese Flexibilität in der Page_Load() - Version.

Marc

2

Ich würde auf jeden Fall empfehlen, dies lesen:

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

Wenn Sie neu Sie einige Probleme ASP.NET finden haben all das bekommen, aber wirklich, ich Ich muss noch ein so detailliertes Dokument zum Thema finden, das aus MS-Dokumentation oder einem MS-Angestellten-Blog kommt.

Ich tat es auf die harte Tour und folgte jedem Weg, den ich mit demontierten Code verwenden konnte, aber dieser Typ nahm sich wirklich die Zeit, es zu schreiben.

+0

Das ist ein cooler lesen und die Zeit wert. +1 Es stoppt jedoch gerade unterhalb des Punktes, über den ich interessiert bin (es ist * zu * niedrigem Niveau) – BCS

+0

Sorry BCS, du hast absolut Recht damit. – user134706

-1

Grundsätzlich versuchen und tun Sie es in Page_Load und wenn das nicht funktioniert, versuchen Sie es entweder Page_Init oder Page_Render. Normalerweise funktioniert einer von ihnen :) Das ist der wissenschaftliche Ansatz.

+0

An die Person, die mich gewählt hat - es sollte ein Witz sein, albern! –

+1

Und als ein Witz sollte es nicht in der Nähe der Spitze der Antworten sein. – BCS

Verwandte Themen